永发信息网

c语言链表问题

答案:1  悬赏:10  手机版
解决时间 2021-01-25 17:20
c语言链表问题
最佳答案
#include 
#include 
struct link 
{
int data;
struct link *next;  
};
struct link *add(struct link *head);
void display(struct link *head);
struct link *dele(struct link *head,int a);
 int main()
{
char c;
struct link *head=NULL;
printf("要创建一个链表吗?");
scanf(" %c",&c); 
while(c=='y'||c=='Y')
{
head=add(head);
printf("要继续创建节点吗?");
scanf(" %c",&c);  
}
display(head);
int a;
printf("要删除哪项数据?"); 
scanf(" %d",&a); 
dele(head,a);
display(head);
}
struct link *add(struct link *head)
{
int data;
struct link *p=(struct link*)malloc(sizeof(struct link));
if(head==NULL)
{
head=p;
}
else
{
struct link *pr=head;//一个临时指针pr先保存下head的地址 
while(pr->next !=NULL)
{
pr=pr->next ;
}
pr->next =p;
}
printf("输入数据"); 
scanf("%d",&p->data ); 
p->next =NULL;
return head;
}
void display(struct link *head)
{
struct link *pr = head; 
while(pr!=NULL)
{
printf("%d
",pr->data ); //不要写成&pr-> 
pr=pr->next ;
}
}
struct link *dele(struct link *head,int a)
{
struct link *p=head;
struct link *pr=NULL;
while(p!= NULL&&a!=p->data )
{
pr=p;//pr临时指针,把p先保存下来 
p=p->next ;
}
if(p==NULL)
{
printf("没有找到数据");
}
else
{
if(p==head)
{
head=p->next ;
printf("%d",head->data ); 
free(p);
}
else
{
pr->next =p->next ;
free(p); 
}
}
return head; 
}代码在这里,提问的上面代码不知道为什么挤在在一起
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
宜昌星之舟足球俱乐部地址好找么,我有些事要
消防泵房湿度达到多少需要加除湿设备
恒运电器修理地址有知道的么?有点事想过去
为什么iphone6s听了微信语音消息后,按音量键
【家务活有哪些】做家务有哪些英语
天正建筑2014出现注册码和管理员权限问题怎么
125摩托车进气门比出气门间隙大有问题吗
地球上的人类到底怎么来的?(进化论不要进)我
去哪里捡大鹅卵石 有一起的吗
阁楼足球俱乐部地址在哪,我要去那里办事
三星手机截屏显示系统UI已停止, 求解决方法
哪位华晨中华的用户能讲讲!中华的发动机怎么
锚杆挡土墙的锚固工序包括有()。A.养护B.钻孔
上班单位在兰州,身份证也是兰州的,但户口在
为什么我下到mp4的电影没中文字幕 在电脑上看
推荐资讯
四年前,小红的年龄是小明的两倍,现在小明18
吾观此人,如插标卖首尔,是谁说的?
心肝宝贝地址在哪,我要去那里办事
如果在重庆办的农业银行卡在成都的建设银行自
武汉的公司社保是月初交还是月末交。
惠氏孕妇奶粉味道怎么样?大家喝过的说一下呗
读后感的格式怎么写的
潭边育苗幼儿园地址好找么,我有些事要过去
【绝对值练习题】绝对误差就是误差的绝对值。
花中花演艺地址在哪,我要去那里办事
CDR X6 安装提示如下是什么意思?
云安区国税局地址在什么地方,我要处理点事
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?