#include<iostream>
#include<stdio.h>
#include<stdlib.h>
using namespace std;
struct node
{
int a;
node* next;
};
node* head;
int len;
void creat()
{
head=NULL;
node* p,*r=NULL;
int x;
for(int i=0;i<len;i++)
{
cin>>x;
p=new node;
p->a=x;
if(head==NULL)
{
head=p;
}
else
{
r->next=p;
}
r=p;
}
r->next=NULL;
node* newnode=new node;
newnode->next=head;
head=newnode;
}
void show_all()
{
node* p=head->next;
while(p)
{
cout<<p->a<<' ';
p=p->next;
}
cout<<endl;
}
void discard()
{
node* p=head->next;
node*q;
while(p)
{
p=p->next;
q=p;
delete(p);
}
}
void sortlist()
{
node *cur,*newnode,*s,*pre;
cur=head->next;
newnode=cur->next;
cur->next=NULL;
while(newnode)
{
s=newnode;
newnode=newnode->next;
pre=head;
cur=head->next;
while(cur)
{
if(s->a<cur->a)
break;
pre=cur;
cur=cur->next;
}
pre->next=s;
s->next=cur;
}
}
int main()
{
while(cin>>len)
{
creat();
sortlist();
show_all();
discard();
}
return 0;
}
单链表插入排序
最新推荐文章于 2021-11-21 21:32:46 发布