-
Notifications
You must be signed in to change notification settings - Fork 0
/
stackoverflow.py
50 lines (44 loc) · 1.05 KB
/
stackoverflow.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
50
class StackOverflow:
def __init__(self, maxSize):
self.stackOfStacks = []
self.maxSize = maxSize
def printStack(self):
for stack in self.stackOfStacks:
print "New stack"
for item in stack:
print item
def push(self, item):
if len(self.stackOfStacks) == 0 or len(self.stackOfStacks[-1]) == self.maxSize:
stack = []
stack.append(item)
self.stackOfStacks.append(stack)
else:
self.stackOfStacks[-1].append(item)
def pop(self):
if len(self.stackOfStacks) == 0:
print "Error : Empty stack"
return None
item = self.stackOfStacks[-1].pop()
if len(self.stackOfStacks[-1]) == 0:
self.stackOfStacks.pop()
return item
so = StackOverflow(10)
so.push(1)
so.push(2)
so.push(3)
so.push(4)
so.push(5)
so.push(6)
so.push(7)
print "After push"
so.printStack()
so.pop()
so.pop()
so.pop()
so.pop()
so.pop()
so.pop()
so.pop()
so.pop()
print "After pop"
so.printStack()