-
Notifications
You must be signed in to change notification settings - Fork 3
/
stack.py
49 lines (32 loc) · 1.11 KB
/
stack.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
from primitives import ListNode
__author__ = 'V Manikantan and Rishi Rajasekaran'
documentation = '''
DETAILS OF THE METHODS:
1) push accepts the current top node and value to be pushed. It returns the new top node.
2) pop accepts the current top node. It returns the new top node after peforming pop operation.
3) top accepts the current top node. It returns the value on top of the stack.
NOTE:
1) If push or pop operation cannot be performed, the stack remains in the same state and doesn't raise any
exception.
2) If the stack is empty, the top node will/should be a NoneType object.
'''
class Stack:
def __init__(self):
self.top = None
def Push(self, key):
self.top = ListNode(key, self.top)
def Pop(self):
if (self.top != None):
self.top = self.top.next
def Top(self):
return self.top
def Empty(self):
return (self.top == None)
def Print_stack(self):
print "Contents of stack: "
it = self.top
while (it != None):
print it.key
it = it.next
if __name__ == '__main__':
pass