-
Notifications
You must be signed in to change notification settings - Fork 1
/
linklist.ev
104 lines (92 loc) · 1.26 KB
/
linklist.ev
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
94
95
96
97
98
99
100
101
102
103
104
struct node {
int num;
struct node next;
};
struct node head;
struct node tail;
fun addnode (int num) void
{
struct node newList;
newList = new node;
newList.num = num;
newList.next = null;
if(head == null)
{
head = newList;
tail = newList;
}
else
{
tail.next = newList;
tail = newList;
}
}
fun printList (struct node cur) void
{
if (cur == tail)
{
print cur.num endl;
}
else
{
print cur.num;
printList(cur.next);
}
}
fun deletenode (struct node cur, int num) void
{
struct node temp;
if (cur == null) {}
else {if (head.num == num)
{
temp = head;
head = head.next;
delete temp;
}
else {if (cur.next == tail)
{
temp = tail;
tail = cur;
tail.next = null;
delete temp;
}
else {if (cur.next.num == num)
{
temp = cur.next;
cur.next = cur.next.next;
delete temp;
}
else
{
deletenode (cur.next, num);
}
}}}
}
fun main () int
{
int x, y;
int i;
read x;
read y;
addnode (1);
addnode (10);
addnode (3);
addnode (4);
addnode (x);
printList (head);
i = 0;
while( i < 100 )
{
addnode(i);
i = i + 1;
}
i = 0;
while ( i < 100 )
{
deletenode(head,i);
i = i + 1;
}
deletenode (head, y);
printList(head);
return 0;
}