初学者。如果有误请指正,欢迎联系QQ2684162190
#include<stdio.h>
#include<stdlib.h>
typedef struct head
{
int date;
struct head* next;
}Link,*Plink;
Plink crea()
{
Plink node=(Plink)malloc(sizeof(Link));
node->date = 0;
node->next = NULL;
return node;
}
void add(Plink head,int x)
{
Plink node = crea();
node ->date = x;
Plink p,q;
p=head;
if(head->next==NULL)
{
head->next=node;
}
else
{
while(p->next!=NULL)
{
p=p->next;
}
p->next = node;
}
}
void paixu(Plink head,int n)
{
Plink p=head->next,q=head->next;
int temp=0;
int i=n,j; //n个节点 链表排序,注意初始化数据
while(i>0)
{
for(j=0;j<i-1;j++)
{
q=p->next;
if(p->date>q->date)
{
temp=p->date;
p->date=q->date;
q->date=temp;
}
p=p->next;
}
i--;
p=head->next;
}
}
int main()
{
Plink head,p,q;
head = crea();
p=head;
int n,x,i=0;
scanf("%d",&n);
while(i<n)
{
scanf("%d",&x);
add(head,x);
i++;
}
while(head->next!=NULL)
{
head=head->next;
printf("%d ",head->date);
}
printf("\n");
head=p;
paixu(head,n);
while(head->next!=NULL)
{
head=head->next;
printf("%d ",head->date);
}
for(;q->next!=NULL;)
{
q=p->next;
head=p;
free(head);
p=q;
}
free(q);
free(p);
return 0;
}