-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathsinglylinklist.py
94 lines (85 loc) · 2.02 KB
/
singlylinklist.py
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
#creat class
class Node :
def __init__(self,data):
self.data=data
self.ref=None
#creat Link_list
class Link_list:
def __init__(self):
self.head=None
#traversal
def traversal(self):
if self.head == None:
print("emty")
else:
value=self.head
while value != None:
print(value.data,end="=>")
value=value.ref
#insertion Node Beginaing
def insert_begin(self,data):
begin=Node(data)
begin.ref=self.head
self.head=begin
#insert last
def insert_last(self,data):
last=Node(data)
temp=self.head
while temp.ref != None:
temp=temp.ref
temp.ref=last
#insert specif
def insert_any(self,position,data):
any=Node(data)
anywhere=self.head
for i in range(1,position-1):
anywhere=anywhere.ref
any.ref=anywhere.ref
anywhere.ref=any
#delete from begining
def delete_beginning(self):
begin=self.head
self.head=begin.ref
begin.ref=None
#delete from last
def delete_last(self):
temp=self.head
delete=self.head.ref
while delete.ref != None:
delete=delete.ref
temp=temp.ref
temp.ref=None
#delete from any where
def delete_anywhere(self,position):
temp=self.head
delete=self.head.ref
for i in range(1,position-1):
delete=delete.ref
temp=temp.ref
temp.ref=delete.ref
delete.ref=None
#test Node
n1=Node(5)
Link=Link_list()
Link.head=n1
n2=Node(10)
n1.ref=n2
Link.traversal()
print("\n")
Link.insert_begin(2)
Link.traversal()
Link.insert_last(11)
print("\n")
Link.traversal()
print("\n")
Link.insert_any(4,5)
Link.traversal()
Link.delete_beginning()
print("\n")
Link.traversal()
print("\n")
Link.delete_last()
Link.traversal()
print("\n")
Link.delete_anywhere(2)
Link.traversal()