输入一组正整数(以-1作为结束标志),将它们存储在一个动态链表中并输出
答案:2 悬赏:10
解决时间 2021-02-10 05:55
- 提问者网友:话酸浅沫
- 2021-02-09 06:51
输入一组正整数(以-1作为结束标志),将它们存储在一个动态链表中并输出
最佳答案
- 二级知识专家网友:深街酒徒
- 2021-02-09 08:09
修改部分在程序中用//....//指出了
#include<iostream.h>
#include<stdlib.h>
#define len sizeof(struct link)
# define NULL 0
typedef struct link
{
int a;
struct link *next;
}NUM;
int n=0;
NUM *creat(void)
{
NUM *head=NULL,*p1,*p2;
cout<<"输入一组正数(以-1结束)";
p1=p2=(NUM *)malloc(len);
cin>>p1->a;
while (p1->a!=-1) //p1改为p2//
{
n++;
if (n==1)head=p1=p2;
else p1->next =p2;
p1=p2;
p2=(NUM *)malloc(len);
cin>>p2->a;
}
p2->next=NULL; //p2改为p1//
return head;
}
void print(NUM *head)
{
NUM *p;
p=head;
if(head==NULL)cout<<"This is an empty list";
else if(p!=NULL) //if(p!=NULL)改为while(p!=NULL)//
{
cout<<p->a ;
p=p->next ;
}
}
NUM *dele(NUM *head)
{
NUM *p1,*p2;
int i;
m=n;
p1=p2=head;
for(i=0;i<m;i++)
{
if(p1->a%2==0)
{
if(p1==head)head=p1->next;
else
if(i!=m-1)p2->next =p1->next ;
else p2->next =NULL;
n=n-1;
}
else p2=p1;
p1=p1->next ;
}
return head;
}
void main()
{
NUM *p;
p=creat();
cout<<"原链表:";
print (p);
dele(p);
cout<<endl<<"删除后的链表:";
print (p);
cout<<endl;
//少了一个}//
#include<iostream.h>
#include<stdlib.h>
#define len sizeof(struct link)
# define NULL 0
typedef struct link
{
int a;
struct link *next;
}NUM;
int n=0;
NUM *creat(void)
{
NUM *head=NULL,*p1,*p2;
cout<<"输入一组正数(以-1结束)";
p1=p2=(NUM *)malloc(len);
cin>>p1->a;
while (p1->a!=-1) //p1改为p2//
{
n++;
if (n==1)head=p1=p2;
else p1->next =p2;
p1=p2;
p2=(NUM *)malloc(len);
cin>>p2->a;
}
p2->next=NULL; //p2改为p1//
return head;
}
void print(NUM *head)
{
NUM *p;
p=head;
if(head==NULL)cout<<"This is an empty list";
else if(p!=NULL) //if(p!=NULL)改为while(p!=NULL)//
{
cout<<p->a ;
p=p->next ;
}
}
NUM *dele(NUM *head)
{
NUM *p1,*p2;
int i;
m=n;
p1=p2=head;
for(i=0;i<m;i++)
{
if(p1->a%2==0)
{
if(p1==head)head=p1->next;
else
if(i!=m-1)p2->next =p1->next ;
else p2->next =NULL;
n=n-1;
}
else p2=p1;
p1=p1->next ;
}
return head;
}
void main()
{
NUM *p;
p=creat();
cout<<"原链表:";
print (p);
dele(p);
cout<<endl<<"删除后的链表:";
print (p);
cout<<endl;
//少了一个}//
全部回答
- 1楼网友:猖狂的痴情人
- 2021-02-09 09:15
无错
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯
• 手机登qq时,显示手机磁盘不足,清理后重新登 |
• 刺客的套装怎么选啊? |