Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit bafab92

Browse files
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

Lines changed: 127 additions & 0 deletions
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)

AltStyle によって変換されたページ (->オリジナル) /