#include<iostream>
#include<stdlib.h>
#define ERROR -1;
#define OK 1;
using namespace std;
typedef int ElemType;
typedef int Status;
typedef struct LNode
{
ElemType data;
struct LNode *next;
}LNode ,*LinkList;
void InitList(LinkList &L)
{
L=new LNode;
L->next=NULL;
}
void show(LinkList L)
{
LinkList p;
p=L->next;
while(p)
{
if(p->next==NULL)
cout<<p->data<<endl;
else
cout<<p->data<<" ";
p=p->next;
}
}
Status ListInsert(LinkList &L,int i,ElemType e)
{
LinkList p=L;
int j=0;
while(p&&j<i-1)
{
p=p->next;
++j;
}
if(!p||j>i-1) return ERROR;
LinkList s;
s=new LNode;
s->data=e;
s->next=p->next;
p->next=s;
return OK;
}
void qsort(LinkList &L)
{
LinkList p=L->next;
LinkList q;
LinkList r;
if(p!=NULL)
{
r=p->next;
p->next=NULL;
p=r;
while(p!=NULL)
{
r=p->next;q=L;
while(q->next!=NULL && q->next->data<=p->data)
{
q=q->next;
}
p->next=q->next;
q->next=p;
p=r;
}
}
}
int main()
{
LinkList L;
InitList(L);
int n,i,x;
cin>>n;
for(i=1;i<=n;i++)
{
cin>>x;
ListInsert(L,i,x);
}
qsort(L);
show(L);
return 0;
}
SDUTOJ 2121 数据结构实验之链表六:有序链表的建立
最新推荐文章于 2018-10-11 21:05:30 发布