Python实现栈
栈(stack),是限定在表尾进行插入或删除操作的线性表。因此,对于栈来说,表尾端有其特殊含义,称为栈顶(top),表头被称为栈底(bottom)。
class stack(object):
#构造空栈
def __init__(self,size):
self.size=size
self.stack=[]
#输出栈
def __str__(self):
return str(self.stack)
#获取栈当前的大小
def getSize(self):
return len(self.stack)
#元素入栈
def push(self,x):
if self.isfull():
raise Exception('stack is full!')
self.stack.append(x)
#出栈
def pop(self):
if self.isempty():
raise Exception('stack is empty!')
topElement=self.stack[-1]
self.stack.remove(topElement)
return topElement
#判断栈空
def isempty(self):
if len(self.stack)==0:
return True
return False
#判断栈空
def isfull(self):
if len(self.stack)==self.size:
return True
return False
测试代码:
if __name__ == '__main__' :
stackTest = stack(10)
for i in range(9) :
stackTest.push(i)
print (stackTest.getSize())
print (stackTest.isempty())
print (stackTest.isfull())
print (stackTest)
for i in range(6) :
stackTest.pop()
print (stackTest.getSize())
print (stackTest)
测试结果: