求一个C语言链表源程序代码

跪求一个一个C语言链表源程序代码.程序包含:链表建立,插入,删除,输出.有C语言高手帮忙一下.好人有好报!小弟的C语言实在学得不好.谢谢了!!!... 跪求一个一个C语言链表源程序代码.程序包含:链表建立,插入,删除,输出. 有C语言高手帮忙一下.好人有好报!小弟的C 语言实在学得不好.谢谢了!!! 展开
 我来答
类剑源醉蝶
2020-01-08 · TA获得超过3633个赞
知道大有可为答主
回答量:3077
采纳率:31%
帮助的人:405万
展开全部
#include
<stdio.h>
#include
<stdlib.h>
struct
node
{
int
num;
struct
node
*next;
};
/*建立
链表
*/
struct
node
*creat(int
n)
{
int
x,
i;
struct
node
*head,
*p,
*r;
head=(struct
node*)malloc(sizeof(struct
node));
r=head;
printf("请输入数字\r\n");
for(i=0;
i<n;
i++)
{
scanf("%d",
&x);
p=(struct
node*)malloc(sizeof(struct
node));
p->num=x;
r->next=p;
r=p;
}
r->next=NULL;
return(head);
}
/*删除重复
结点
*/
void
delet(struct
node
*head)
{
struct
node
*p,
*q,
*r;
p=head->next;
while(p!=NULL)
{
q=p;
while(q->next!=NULL)
{
r=q->next;
if(r->num==p->num)
{
if(r->next!=NULL)
{
q->next=r->next;
free(r);
}
else
{
q->next=NULL;
free(r);
}
}
else
{
q=r;
}
}
p=p->next;
}
}
/*排序*/
void
sort(struct
node
*head)
{
struct
node
*p,
*q,
*small;
int
temp;
for(p=head->next;
p->next!=NULL;
p=p->next)
{
small=p;
for(q=p->next;
q!=NULL
;q=q->next)
{
if(q->num<small->num)
small=q;
}
if(small!=p)
{
temp=small->num;
small->num=p->num;
p->num=temp;
}
}
}
/*输出*/
void
output(struct
node
*head)
{
struct
node
*pt;
pt=head->next;
while(pt!=NULL)
{
printf("%d\r\n",
pt->num);
pt=pt->next;
}
}
main()
{
int
n;
struct
node
*head;
printf("输入数字的个数n\r\n");
scanf("%d",
&n);
head=creat(n);
printf("输入的数字\r\n");
output(head);
delet(head);
printf("删除重复结点后输出数字\r\n");
output(head);
sort(head);
printf("排序后输出数字\r\n");
output(head);
free(head);
}
希望能对你有帮助,俺也学C不到
两个月
,共同进步啊!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式