Amazing-Python-Scripts
134 строки · 3.4 Кб
1"""
2Author: Himanshu Agarwal
3Github: himanshu-03 (http://github.com/himanshu-03)
4LinkedIn: agarwal-himanshu (https://linkedin.com/in/agarwal-himanshu)
5
6# Menu Driven Code for Doubly Linked List
7"""
8
9
10class Node:
11def __init__(self, data):
12self.data = data
13self.right = None
14self.left = None
15
16
17class LinkedList:
18def __init__(self):
19self.root = None
20self.last = None
21
22def insertLeft(self, data):
23n = Node(data)
24if self.root == None:
25self.root = n
26
27else:
28n.right = self.root
29self.root.left = n
30self.root = n
31
32def deleteLeft(self):
33if self.root == None:
34print('\nLinked List is empty..!!')
35else:
36temp = self.root
37if self.root.right == self.root.left == None:
38self.root = None
39else:
40self.root = self.root.right
41print('Deleted: ', temp.data)
42
43def insertRight(self, data):
44n = Node(data)
45if self.root == None:
46self.root = n
47else:
48temp = self.root
49while temp.right != None:
50temp = temp.right
51temp.right = n
52n.left = temp
53n.right = None
54print('Inserted Element: ', n.data)
55
56def deleteRight(self):
57if self.root == None:
58print('\nLinked List is empty..!!')
59else:
60if self.root.right == self.root.left:
61self.root = None
62else:
63temp = self.root
64while temp.right != None:
65temp = temp.right
66print('\nDeleted: ', temp.data)
67temp = temp.left
68temp.right = None
69
70def printList(self):
71if self.root == None:
72print('\nLinked List is empty..!!')
73return
74else:
75temp = self.root
76print('Elements of linked list are: ')
77while temp != None:
78print('|', temp.data, ' <-> ', end=" ")
79temp = temp.right
80print('None')
81print('')
82
83def printListReverse(self):
84if self.root == None:
85print('\nLinked List is empty..!!')
86return
87else:
88temp = self.root
89print('Elements of linked list are: ')
90while temp.right != None:
91temp = temp.right
92while temp != None:
93print('|', temp.data, ' <-> ', end=" ")
94temp = temp.left
95
96print('None')
97print('')
98
99
100o = LinkedList()
101
102while True:
103print('----------------------')
104print('\n1. Insert from Left\n2. Insert from Right\n3. Delete from Left\n4. Delete from Right\n5. Print Linked List\n6. Print Reverse Linked List\n0. Exit')
105print('----------------------')
106
107ch = int(input('\nEnter your choice: '))
108
109if ch == 1:
110data = int(input('\nEnter value to be inserted in left: '))
111o.insertLeft(data)
112
113elif ch == 2:
114data = int(input('\nEnter value to be inserted in right: '))
115o.insertRight(data)
116
117elif ch == 3:
118o.deleteLeft()
119
120elif ch == 4:
121o.deleteRight()
122
123elif ch == 5:
124o.printList()
125
126elif ch == 6:
127o.printListReverse()
128
129elif ch == 0:
130print('You are out of the program..!!')
131break
132
133else:
134print('\nWrong Input..\nEnter the correct choice..!!\n')
135