Skip to content

Commit 7f959a6

Browse files
author
SAMIR PAUL
authored
Add files via upload
1 parent 236f6d8 commit 7f959a6

File tree

1 file changed

+155
-0
lines changed

1 file changed

+155
-0
lines changed
Lines changed: 155 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,155 @@
1+
class Node:
2+
def __init__(self,data):
3+
self.data = data
4+
self.next = None
5+
6+
class Linkedlist:
7+
def __init__(self):
8+
self.head = None
9+
10+
# To print the total LinkedList
11+
12+
def print_LL(self):
13+
if self.head is None:
14+
print("The Linkedlist is Empty")
15+
else:
16+
tem = self.head
17+
while tem is not None:
18+
print(tem.data)
19+
tem = tem.next
20+
21+
# Add at the beginning
22+
23+
def add_begin(self,data):
24+
if self.head is None:
25+
new_node = Node(data)
26+
self.head = new_node
27+
else:
28+
new_node = Node(data)
29+
new_node.next = self.head
30+
self.head = new_node
31+
32+
# Add after the End Node
33+
34+
def add_end(self,data):
35+
if self.head is None:
36+
self.head = Node(data)
37+
else:
38+
tem = self.head
39+
while tem.next is not None:
40+
tem = tem.next
41+
new_node = Node(data)
42+
tem.next = new_node
43+
44+
# Add after a given Node
45+
46+
def after_node(self,x,data):
47+
if self.head is None:
48+
print("Can Not add as LL is Empty")
49+
else:
50+
tem = self.head
51+
while tem.next is not None:
52+
if tem.data == x:
53+
break
54+
tem = tem.next
55+
if tem.next is None:
56+
print(f"Enter data {x} is out of bound!")
57+
else:
58+
new_node = Node(data)
59+
new_node.next = tem.next
60+
tem.next = new_node
61+
62+
# Add before a given node
63+
64+
def before_node(self,x,data):
65+
if self.head is None:
66+
print("Can Not add as LL is Empty")
67+
else:
68+
tem = self.head
69+
while tem.next is not None:
70+
if tem.next.data == x:
71+
break
72+
tem = tem.next
73+
if tem.next is None:
74+
print(f"Enter data {x} is out of bound!!!")
75+
else:
76+
new_node = Node(data)
77+
new_node.next = tem.next
78+
tem.next = new_node
79+
80+
# Delete by Value of a Nodde
81+
82+
def delete_by_value(self,x):
83+
if self.head is None:
84+
print("Can Not add as LL is Empty")
85+
elif self.head.data ==x:
86+
self.head = self.head.next
87+
else:
88+
tem = self.head
89+
while tem.next is not None:
90+
if tem.next.data ==x:
91+
break
92+
tem = tem.next
93+
if tem.next is None:
94+
print(f"Entered value {x} is Not found!!!!")
95+
else:
96+
tem.next = tem.next.next
97+
98+
# Delete First Node
99+
100+
def delete_begining(self):
101+
if self.head is None:
102+
print("The LL is Empty so can not be deleted!!!!")
103+
else:
104+
self.head = self.head.next
105+
106+
# Delete the end node
107+
108+
def delete_end(self):
109+
if self.head is None:
110+
print("The LL is Empty so can not be deleted!!!!")
111+
else:
112+
tem = self.head
113+
while tem.next.next is not None:
114+
tem = tem.next
115+
tem.next = None
116+
117+
# Delete next node of a given node
118+
119+
def delete_next_node(self,x):
120+
if self.head is None:
121+
print("The LL is Empty so can not be deleted!!!!")
122+
else:
123+
tem = self.head
124+
while tem.next is not None:
125+
if tem.data ==x:
126+
break
127+
tem = tem.next
128+
if tem.next is None:
129+
print(f"The given value {x} is out of bound!!!!!!!!!!!!!!!!!!!!!!!")
130+
else:
131+
tem.next = tem.next.next
132+
133+
134+
135+
136+
LL = Linkedlist()
137+
138+
LL.add_begin(40)
139+
LL.add_begin(30)
140+
LL.add_begin(20)
141+
LL.add_begin(10)
142+
LL.add_end(50)
143+
LL.add_end(60)
144+
LL.add_end(70)
145+
LL.after_node(400,100)
146+
LL.before_node(310,5000)
147+
LL.delete_by_value(10)
148+
LL.delete_begining()
149+
LL.delete_end()
150+
LL.delete_next_node(330)
151+
152+
LL.print_LL()
153+
154+
155+

0 commit comments

Comments
 (0)