Skip to content

Commit bafab92

Browse files
authored
Add files via upload
1 parent 3b9a1d7 commit bafab92

File tree

1 file changed

+127
-0
lines changed

1 file changed

+127
-0
lines changed

simple_Linked_List.py

+127
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,127 @@
1+
class Node:
2+
3+
def __init__(self,data):
4+
self.__data = data
5+
self.__next = None
6+
7+
def get_data(self):
8+
return self.__data
9+
10+
def set_data(self,data):
11+
self.__data = data
12+
13+
def get_next(self):
14+
return self.__next
15+
16+
def set_next(self,next):
17+
self.__next = next
18+
19+
class LinkedList:
20+
21+
def __init__(self):
22+
self.__head = None
23+
self.__tail = None
24+
25+
def get_head(self):
26+
return self.__head
27+
28+
def get_tail(self):
29+
return self.__tail
30+
31+
def add(self,data):
32+
new_node = Node(data)
33+
if self.__head is None:
34+
self.__head = self.__tail = new_node
35+
else:
36+
self.__tail.set_next(new_node)
37+
self.__tail = new_node
38+
39+
def display(self):
40+
temp = self.__head
41+
count = 0
42+
while temp is not None:
43+
print("\nNode ",temp.get_data()," is present at Position ",count)
44+
count += 1
45+
temp = temp.get_next()
46+
47+
def find_node(self,data):
48+
if self.__head is not None:
49+
count = 0
50+
flag = False
51+
temp = self.__head
52+
while temp is not None:
53+
if(temp.get_data() == data):
54+
print("\nNode ",temp.get_data()," is found at Position ",count)
55+
flag = True
56+
return count
57+
else:
58+
count += 1
59+
temp = temp.get_next()
60+
61+
if(flag == False):
62+
print("\nNode ",data," is Not found at any Positions ")
63+
return -1
64+
65+
else:
66+
print("\n List is Empty")
67+
return -1
68+
69+
def insert(self,data,before):
70+
new_node = Node(data)
71+
temp = self.__head
72+
prev = None
73+
while temp is not None:
74+
if(temp.get_data() == before):
75+
pos = self.find_node(temp.get_data())
76+
print(pos)
77+
if pos == 0:
78+
new_node.set_next(self.__head)
79+
self.__head = new_node
80+
break
81+
else:
82+
new_node.set_next(temp)
83+
prev.set_next(new_node)
84+
break
85+
else:
86+
prev = temp
87+
temp = temp.get_next()
88+
89+
def delete(self,data):
90+
temp = self.__head
91+
prev = None
92+
if(temp.get_data() == data):
93+
self.__head = temp.get_next()
94+
temp.set_next(None)
95+
return None
96+
while temp is not None:
97+
if(temp.get_data() == data):
98+
if temp.get_next() is not None:
99+
prev.set_next(temp.get_next())
100+
temp.set_next(None)
101+
break
102+
else:
103+
prev.set_next(None)
104+
break
105+
else:
106+
prev = temp
107+
temp = temp.get_next()
108+
109+
110+
111+
112+
l = LinkedList()
113+
l.add("Nishad")
114+
l.add("Kunal")
115+
l.add("Pavan")
116+
l.add("Pratik")
117+
l.add("Sarvesh")
118+
l.add("Kedar")
119+
l.add("Gaurav")
120+
l.display()
121+
# l.insert("NP","Sarvesh")
122+
# l.find_node("Nishad")
123+
# l.delete("Nishad")
124+
# l.display()
125+
126+
127+

0 commit comments

Comments
 (0)