69,369
社区成员
发帖
与我相关
我的任务
分享
#include<stdio.h>
typedef struct node{
char data;
struct node *next;
}Link;
void
display(Link *h)
{
Link *t;
t=h->next;
while(t!=NULL)
{
printf("%d->",t->data);
t=t->next;
}
}
Link *
creat_link()
{
int run=1,v,i=1;
Link *h,*t,*s;
h=(Link *)malloc(sizeof(Link));
if(NULL==h)
exit(1);
t=h;
while(run)
{
printf("please input the %drd node vlaue:",i++);
scanf("%d",&v);
if(v!=-1) //输入-1表示链表结束
{
s=(Link*)malloc(sizeof(Link));
if(NULL==s)
exit(1);
s->data=v;
t->next=s;
t=s;
}
else
run=0;
}
t->next=NULL;
printf("before sort,the link is :");
display(h);
return h;
}
void
sort(Link *h)
{
Link *r,*p,*q;
if(h!=NULL)
{
p=h->next;
r=p->next;
p->next=NULL;
while(r!=NULL)
{
q=h;
p=r->next;
while(q->next!=NULL&&q->next->data<r->data)
q=q->next;
r->next=q->next;
q->next=r;
r=p;
}
}
printf("After sort the link is:");
display(h);
}
int
main()
{
sort(creat_link());
return 0;
}