[Python] 纯文本查看 复制代码 # 定义一个栈(Stack)类,用于模拟一种具有后进先出(LIFO)特性的数据结构。
# 至少需要有以下方法:
# 方法名
# isEmpty()
# 判断当前栈是否为空(返回 True 或 False)
# push()
# 往栈的顶部压入一个数据项
# pop()
# 从栈顶弹出一个数据项(并在栈中删除)
# top()
# 显示当前栈顶的一个数据项
# bottom()
# 显示当前栈底的一个数据项
class Stack:
def __init__(self,start = []):
self.stack = []
for x in start:
self.push(x)
def isEmpty(self):
# if len(self.stack) == 0:
# return True
# else:
# return False
return not self.stack
def push(self,x):
self.stack.append(x)
def pop(self,x):
# self.stack.pop()
if self.isEmpty():
print('警告:栈为空!')
else:
return self.stack.pop()
def top(self):
if self.isEmpty():
print('警告:栈为空!')
else:
return self.stack[-1]
def bottom(self):
if self.isEmpty():
print('警告:栈为空!')
else:
return self.stack[0]
def print_stack(self,reversed = False):
if reversed == False:
print(self.stack)
else :
self.stack.reverse()
print(self.stack)
self.stack.reverse()
# Python的list.reverse()方法,会直接在原来的列表里面将元素进行逆序排列,不需要创建新的副本用于存储结果。
|