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)
#第一步:栈底元素移动到栈顶
#第二步:递归调用除栈顶元素之外的子栈
'''方法功能:栈底元素移动到栈顶
'''
def moveBottomToTop(s):
if s.isEmpty():
return
#记录栈顶元素
top1 = s.top()
s.pop()
#生成子栈
if not s.isEmpty():
#递归处理不包含栈顶的子栈
moveBottomToTop(s)
#记录子栈的栈顶元素
top2 = s.top()
s.pop
如何翻转栈的所有元素
最新推荐文章于 2021-03-23 11:05:08 发布