forked from LTstrange/datastruct
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdatastruct_4_1.cpp
61 lines (55 loc) · 1.08 KB
/
datastruct_4_1.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
#include <stdio.h>
#include <malloc.h>
typedef struct Node{
struct Node* pre;
int data;
struct Node* next;
}Node, *LinkList;
void InitList(LinkList *L){
*L = (LinkList)malloc(sizeof(Node));
(*L)->next = *L;
(*L)->pre = *L;
}
void CreateFromTail(int count, LinkList H){
LinkList s, L;
L = H;
int i=0;
while(count){
scanf("%d", &i);
s = (LinkList)malloc(sizeof(Node));
s->data = i;
s->pre = L;
s->next = H;
L->next = s;
L = s;
count--;
}
}
void Sequence(int length, LinkList L){
Node *s;
s = L->next;
int temp=0;
while (s->data > s->next->data && s->next != L){
temp = s->data;
s->data = s->next->data;
s->next->data = temp;
s = s->next;
}
}
void show(LinkList L){
LinkList s = L->next;
while (s != L){
printf("%d ", s->data);
s = s->next;
}
}
int main(){
int length;
LinkList L;
InitList(&L);
scanf("%d", &length);
CreateFromTail(length, L);
Sequence(length, L);
show(L);
return 0;
}