1
#include <iostream>
2
using namespace std;
3
4
typedef struct LNode
{
5
int data;
6
struct LNode* next;
7
}Linklist;
8
9
void disList(Linklist* L)
{
10
Linklist* p=L->next;
11
while(p!=NULL)
{
12
cout<<p->data<<" ";
13
p=p->next;
14
}
15
cout<<endl;
16
}
17
18
void creatList(Linklist *&L,int* a,int n)
{
19
20
Linklist* s;
21
int i;
22
L=(Linklist*)malloc(sizeof(Linklist));
23
L->next=NULL;
24
for (i=0;i<n;i++)
25
{
26
s=(Linklist*)malloc(sizeof(Linklist));
27
s->data=a[i];
28
s->next=L->next;
29
L->next=s;
30
}
31
}
32
33
34
void sort_list(Linklist *&head)
{
35
Linklist *p=head->next,*q,*r;
36
if (p!=NULL)
37
{
38
r=p->next;
39
p->next=NULL;
40
p=r;
41
while(p!=NULL)
{
42
r=p->next;
43
q=head;
44
while(q->next!=NULL && q->next->data<p->data)
45
q=q->next;
46
p->next=q->next;
47
q->next=p;
48
p=r;
49
}
50
}
51
}
52
53
int main()
{
54
Linklist* L;
55
L=(Linklist*)malloc(sizeof(Linklist));
56
int a[8]=
{3,34,5,4,32,39,1,0};
57
creatList(L,a,8);
58
sort_list(L);
59
disList(L);
60
}
#include <iostream>2
using namespace std;3

4

typedef struct LNode
{5
int data;6
struct LNode* next;7
}Linklist;8

9

void disList(Linklist* L)
{10
Linklist* p=L->next;11

while(p!=NULL)
{12
cout<<p->data<<" ";13
p=p->next;14
}15
cout<<endl;16
}17

18

void creatList(Linklist *&L,int* a,int n)
{19

20
Linklist* s;21
int i;22
L=(Linklist*)malloc(sizeof(Linklist));23
L->next=NULL;24
for (i=0;i<n;i++)25

{26
s=(Linklist*)malloc(sizeof(Linklist));27
s->data=a[i];28
s->next=L->next;29
L->next=s;30
}31
}32

33

34

void sort_list(Linklist *&head)
{35
Linklist *p=head->next,*q,*r;36
if (p!=NULL)37

{38
r=p->next;39
p->next=NULL;40
p=r;41

while(p!=NULL)
{42
r=p->next;43
q=head;44
while(q->next!=NULL && q->next->data<p->data)45
q=q->next;46
p->next=q->next;47
q->next=p;48
p=r;49
}50
}51
}52

53

int main()
{54
Linklist* L;55
L=(Linklist*)malloc(sizeof(Linklist));56

int a[8]=
{3,34,5,4,32,39,1,0};57
creatList(L,a,8);58
sort_list(L);59
disList(L);60
}

