编程题实训-基于栈的可操作判断Python代码
时间: 2024-11-25 13:31:09 浏览: 16
在编程中,特别是数据结构的学习阶段,基于栈(Stack)的可操作判断通常涉及到设计一个栈数据结构,然后实现一些基本的操作如入栈(push)、出栈(pop)、查看栈顶元素(top)等,并编写函数来检查给定的一系列操作是否合法。下面是一个简单的Python代码示例:
```python
class Stack:
def __init__(self):
self.items = []
def is_empty(self):
return not bool(self.items)
def push(self, item):
self.items.append(item)
def pop(self):
if not self.is_empty():
return self.items.pop()
else:
return None
def top(self):
if not self.is_empty():
return self.items[-1]
else:
return None
def check_operations(operations):
stack = Stack()
for op in operations:
if op == 'push':
# 检查栈是否满
if len(stack.items) >= 50: # 假设栈的最大容量是50
return False
else:
stack.push('item') # 入栈操作
elif op == 'pop':
stack.pop() # 出栈操作,如果栈为空则返回False
elif op == 'top':
print(stack.top()) # 查看栈顶元素,不影响栈状态
else:
return False # 非法操作
return True # 所有操作都完成且栈未空
# 测试操作序列
operations_test = ['push', 'push', 'top', 'push', 'pop']
print(check_operations(operations_test)) # 输出结果取决于实际执行情况
阅读全文