Skip to content

Commit 5f3e6d9

Browse files
python-linked-list-all-operations
1 parent 21edf8c commit 5f3e6d9

File tree

1 file changed

+97
-0
lines changed

1 file changed

+97
-0
lines changed
Lines changed: 97 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,97 @@
1+
class Node:
2+
def __init__(self, data=None, next=None):
3+
self.data = data
4+
self.next = next
5+
6+
class LinkedList:
7+
def __init__(self):
8+
self.head = None
9+
10+
def print(self):
11+
if self.head is None:
12+
print("Linked list is empty")
13+
return
14+
itr = self.head
15+
llstr = ''
16+
while itr:
17+
llstr += str(itr.data)+' --> ' if itr.next else str(itr.data)
18+
itr = itr.next
19+
print(llstr)
20+
21+
def length(self):
22+
count = 0
23+
itr = self.head
24+
while itr:
25+
count += 1
26+
itr = itr.next
27+
28+
return count
29+
30+
def insert_at_begining(self, data):
31+
node = Node(data, self.head)
32+
self.head = node
33+
34+
def insert_at_end(self, data):
35+
if self.head is None:
36+
self.head = Node(data, None)
37+
return
38+
39+
itr = self.head
40+
41+
while itr.next:
42+
itr = itr.next
43+
44+
itr.next = Node(data, None)
45+
46+
def insert_at(self, index, data):
47+
if index < 0 or index > self.length():
48+
raise Exception("Invalid Index")
49+
50+
if index == 0:
51+
self.insert_at_begining(data)
52+
return
53+
54+
count = 0
55+
itr = self.head
56+
while itr:
57+
if count == index - 1:
58+
node = Node(data, itr.next)
59+
itr.next = node
60+
break
61+
62+
itr = itr.next
63+
count += 1
64+
65+
def remove_at(self, index):
66+
if index < 0 or index >= self.length():
67+
raise Exception("Invalid Index")
68+
69+
if index == 0:
70+
self.head = self.head.next
71+
return
72+
73+
count = 0
74+
itr = self.head
75+
while itr:
76+
if count == index - 1:
77+
itr.next = itr.next.next
78+
break
79+
80+
itr = itr.next
81+
count += 1
82+
83+
def insert_values(self, data_list):
84+
self.head = None
85+
for data in data_list:
86+
self.insert_at_end(data)
87+
88+
89+
if __name__ == '__main__':
90+
node1 = LinkedList()
91+
node1.insert_values(["python","C++","C","Java"])
92+
node1.insert_at(1,"Javascript")
93+
node1.remove_at(2)
94+
node1.print()
95+
node1.insert_values([45,7,12,567,99])
96+
node1.insert_at_end(67)
97+
node1.print()

0 commit comments

Comments
 (0)