通过list实现stack功能:
class Stack:
def __init__(self, size = 10):
self.top = -1
self.size = size
self.stack = []
def push(self, value):
if self.isFull():
raise "Stack is full"
else:
self.stack.append(value)
self.top += 1
def pop(self):
if self.isEmpty():
raise "Stack is empty"
else:
data = self.stack[-1]
self.top= self.top-1
del self.stack[-1]
return data
def isFull(self):
if self.top == self.size -1:
return True
else:
return False
def isEmpty(self):
if self.top == -1:
return True
else:
return False
def set_size(self,size):
self.size = size
def empty(self):
self.stack = []
self.top = -1
def Top(self):
return self.top
if __name__ == '__main__':
st = Stack()
for i in range(1,15):
try:
st.push(i)
except:
print "out of size"
else:
print "push " + str(i) + " OK"
print("top value is %s" % st.stack[st.Top()])
print("start pop")
while not st.isEmpty():
print("top value is %d" % st.stack[st.Top()])
st.pop()