Skip to content

Commit 8e6ed93

Browse files
committed
doubly linked list
1 parent 5d03754 commit 8e6ed93

File tree

1 file changed

+51
-0
lines changed

1 file changed

+51
-0
lines changed

doubly linked list.py

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
class Node:
2+
def __init__(self, data):
3+
self.data = data
4+
self.next = None
5+
self.prev = None
6+
7+
8+
class DoublyLinkedList:
9+
def __init__(self):
10+
self.head = None
11+
12+
def printList(self):
13+
temp = self.head
14+
while temp:
15+
print(temp.data)
16+
temp = temp.next
17+
18+
def append(self, data):
19+
if not self.head:
20+
new_node = Node(data)
21+
new_node.prev = None
22+
self.head = new_node
23+
else:
24+
new_node = Node(data)
25+
temp = self.head
26+
while temp.next:
27+
temp = temp.next
28+
temp.next = new_node
29+
new_node.prev = temp
30+
new_node.next = None
31+
32+
def prepend(self, data):
33+
if not self.head:
34+
new_node = Node(data)
35+
new_node.prev = None
36+
self.head = new_node
37+
else:
38+
new_node = Node(data)
39+
self.head.prev = new_node
40+
new_node.next = self.head
41+
self.head = new_node
42+
new_node.prev = None
43+
44+
45+
if __name__ == '__main__':
46+
47+
dlist = DoublyLinkedList()
48+
dlist.append(10)
49+
dlist.append(20)
50+
dlist.prepend(30)
51+
dlist.printList()

0 commit comments

Comments
 (0)