-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path18.cpp
More file actions
93 lines (81 loc) · 1.4 KB
/
18.cpp
File metadata and controls
93 lines (81 loc) · 1.4 KB
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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
#include <iostream>
using namespace std;
struct Node
{
int x;
Node *Next,*Prev;
};
class List
{
Node *Head,*Tail;
public:
List():Head(NULL),Tail(NULL){};
~List();
void Show();
void Add(int x);
void Sort();
};
List::~List()
{
while (Head)
{
Tail=Head->Next;
delete Head;
Head=Tail;
}
}
void List::Add(int x)
{
Node *temp=new Node;
temp->Next=NULL;
temp->x=x;
if (Head!=NULL)
{
temp->Prev=Tail;
Tail->Next=temp;
Tail=temp;
}
else
{
temp->Prev=NULL;
Head=Tail=temp;
}
}
void List::Show()
{
Node *temp=Tail;
while (temp!=NULL)
{
cout<<temp->x<<" ";
temp=temp->Prev;
}
cout <<endl;
//temp=Head;
// while (temp!=NULL)
//{
// cout<<temp->x<<" ";
// temp=temp->Next;
//}
//cout <<endl;
}
void List::Sort()
{
Node *list=Head;
Node *node,*node2;
for(node=list;node;node=node->Next)
for(node2=list;node2;node2=node2->Next)
if( node->x>node2->x){
int i=node->x;
node->x=node2->x;
node2->x=i;
}
}
int main ()
{
List list;
for (int i=0;i<10;i++)
list.Add(rand());
list.Sort();
list.Show();
list;
}