MCPcopy Create free account
hub / github.com/careercup/ctci / SingleArrayStacks

Class SingleArrayStacks

python/Chapter 3/Question3_1/Q3_1.py:3–37  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1# Fixed division
2
3class SingleArrayStacks(object):
4
5 def __init__(self, stacksize = 100, number = 3):
6 self.stacksize = stacksize
7 self.number = number
8 self.array = [None] * self.stacksize * self.number
9 self.pointer = [-1] * self.number
10
11 def push(self, stacknum, value):
12 if self.pointer[stacknum] + 1 >= self.stacksize:
13 print "Out of space"
14 else:
15 self.pointer[stacknum] += 1
16 self.array[self.stacktop(stacknum)] = value
17
18 def pop(self, stacknum):
19 if self.pointer[stacknum] < 0:
20 return "Trying to pop an empty stack."
21 else:
22 data = self.array[self.stacktop(stacknum)]
23 self.array[self.stacktop(stacknum)] = None
24 self.pointer[stacknum] -= 1
25 return data
26
27 def peek(self, stacknum):
28 if self.pointer[stacknum] < 0:
29 print "Empty stack"
30 else:
31 return self.array[self.stacktop(stacknum)]
32
33 def isEmpty(self, stacknum):
34 return self.pointer[stacknum] == -1
35
36 def stacktop(self, stacknum):
37 return self.stacksize * stacknum + self.pointer[stacknum]
38
39
40

Callers 1

Q3_1.pyFile · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected