编程题实训-栈Python版
时间: 2024-09-29 12:03:15 浏览: 107
编程题实训中的栈(Stack)在Python中通常是一个数据结构,它遵循先进后出(Last In First Out, LIFO)的原则。你可以使用内置的`list`数据结构来实现一个简单的栈,因为列表支持在两端添加和删除元素。
以下是一个基本的栈实现:
```python
class Stack:
def __init__(self):
self.items = []
# 入栈 (push) - 添加元素到顶部
def push(self, item):
self.items.append(item)
# 出栈 (pop) - 删除并返回顶部元素
def pop(self):
if not self.is_empty():
return self.items.pop()
else:
raise IndexError("Stack is empty")
# 查看栈顶元素 (peek)
def peek(self):
if not self.is_empty():
return self.items[-1]
else:
return None
# 判断栈是否为空
def is_empty(self):
return len(self.items) == 0
# 使用示例
stack = Stack()
stack.push(1)
stack.push('hello')
print(stack.peek()) # 输出 'hello'
stack.pop()
print(stack.is_empty()) # 输出 False
```
在实际的编程实训中,可能会涉及栈的应用场景,比如函数调用堆栈、表达式求值、迷宫算法等。通过练习这类题目,可以提高对数据结构的理解以及问题解决能力。
阅读全文