Amazing-Python-Scripts
95 строк · 2.0 Кб
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 Stack
7"""
8
9
10class S:
11stack = []
12MaxSize = 0
13tos = 0
14
15def createStack(self, size):
16S.tos = -1
17S.MaxSize = size
18for i in range(0, S.MaxSize):
19S.stack.append(0)
20print('Stack created of size', len(S.stack))
21print(S.stack)
22
23def push(self, e):
24S.tos += 1
25S.stack[S.tos] = e
26print('Element pushed')
27
28def pop(self):
29temp = S.stack[S.tos]
30S.tos -= 1
31return temp
32
33def isFull(self):
34if S.tos == S.MaxSize-1:
35return True
36else:
37return False
38
39def isEmpty(self):
40if S.tos == -1:
41return True
42else:
43return False
44
45def peek(self):
46return (S.stack[S.tos])
47
48def printStack(self):
49for i in range(S.tos, -1, -1):
50print(i, S.stack[i])
51
52
53# Main Code
54o = S()
55o.createStack(int(input('Enter size: ')))
56while True:
57print('------------')
58print('1.Push\n2.Pop\n3.Peek\n4.Print\n0.Exit')
59print('------------')
60
61ch = int(input('Enter your choice: '))
62
63if ch == 1:
64if o.isFull() != True:
65data = int(input('Enter the element to push: '))
66o.push(data)
67print('Element pushed:', data)
68else:
69print('\nStack is full..!!')
70
71elif ch == 2:
72if o.isEmpty() != True:
73print('Element popped:', o.pop())
74else:
75print('\nStack is empty..!!')
76
77elif ch == 3:
78if o.isEmpty() != True:
79print('Peeked Element', o.peek())
80else:
81print('\nStack is empty..!!')
82
83elif ch == 4:
84if o.isEmpty() != True:
85print('ELements in stack are: ')
86o.printStack()
87else:
88print('\nStack is empty..!!')
89
90elif ch == 0:
91break
92
93else:
94print('Wrong Input')
951
96