栈:是一个先入后出的有序列表 线性表。
栈的删除和插入只能在一端进行,允许插入和删除的一端为栈顶,另一端称为栈底
最先放进栈中的元素在栈顶,最先取出
Python 中的栈直接以列表为主,增加使用append(),出栈为pop()
实现栈的思路分析:
class ArrayStack:
def __init__(self,masSize):
self.maxsize = masSize
self.stack = []
self.top = -1
# 判断栈是不是 满的
def isFull(self):
return self.top == self.maxsize - 1
# 判断栈是不是空的
def isEmpty(self):
return self.top == -1
# 将数据压入栈中
def push(self,value):
if self.isFull():
print("栈已经满了!")
return
self.top = self.top + 1
self.stack.append(value)
# 将栈中的数据进行删除
def pop(self):
if self.isEmpty():
print("栈已经是空的了,没法执行出栈操作!")
return
value = self.stack.pop()
self.top = self.top - 1
return value
# 显示栈的内容,需要先从栈顶显示数据
def showStack(self):
if self.isEmpty():
print("栈已经是空的了,没法执行显示操作!")
return
i = self.top
while i > -1:
print("栈中存在的数据:",self.stack[i])
i = i -1
if __name__ == '__main__':
array = ArrayStack(5)
print("栈的情况:",array.isEmpty())
print("栈的情况:", array.isFull())
array.push(2)
array.push(3)
array.push(4)
array.push(5)
array.push(6)
#array.push(7)
array.showStack()
array.pop()
array.showStack()