实现一个栈的数据结构,使其具有以下方法:压栈、弹栈、取栈顶元素、判断栈是否为空以及获取栈中数据元素。
数组实现
在采用数组来实现栈的时候,栈空间是一段连续的空间。
class MyStack:
# 模拟栈
def __init__(self):
self.items = []
# 判断栈是否为空
def isEmpty(self):
return len(self.items)==0
# 返回栈的大小
def size(self):
return len(self.items)
# 返回栈顶元素
def top(self):
if not self.isEmpty():
return self.items[len(self.items)-1]
else:
return None
# 弹栈
def pop(self):
if len(self.items)>0:
return self.items.pop()
else:
print('栈已经为空')
return None
# 压栈
def push(self,item):
self.items.append(item)
if __name__=="__main__":
s = MyStack()
s.push(4)
print("栈顶元素为"+str(s.top()))
print("栈大小为:"+str(s.size()))
s.pop()
print("弹栈成功")
s.pop()
结果:
栈顶元素为4
栈大小为:1
弹栈成功
栈已经为空
Process finished with exit code 0