如何使用Python编程实现一个基本的栈数据结构,包括执行push(入栈)、pop(出栈)、peek(查看栈顶元素)、get_size(获取栈的长度)、is_empty(检查栈是否为空)以及exit(退出)功能?请提供相应的代码示例。
时间: 2024-11-03 22:23:08 浏览: 15
在Python中,你可以使用内置的列表(list)来实现一个简单的栈数据结构,因为列表支持动态大小调整,并且可以用索引来快速地在两端添加或删除元素。这里是一个基本的栈实现:
```python
class Stack:
def __init__(self):
self.stack = []
# 入栈(push)
def push(self, item):
self.stack.append(item)
# 出栈(pop) - 如果栈空则抛异常
def pop(self):
if not self.is_empty():
return self.stack.pop()
else:
raise IndexError("Stack is empty")
# 查看栈顶元素(peek) - 不修改栈的内容
def peek(self):
if not self.is_empty():
return self.stack[-1]
else:
raise IndexError("Stack is empty")
# 获取栈的长度(get_size)
def get_size(self):
return len(self.stack)
# 检查栈是否为空(is_empty)
def is_empty(self):
return not bool(self.stack)
# 退出函数,不是栈的基本操作,但可以包含在控制流中用于关闭程序
def exit(self):
print("Exiting the stack implementation.")
sys.exit()
# 示例使用
stack = Stack()
stack.push(1)
stack.push('two')
print(stack.peek()) # 输出: 'two'
print(stack.get_size()) # 输出: 2
stack.pop()
print(stack.get_size()) # 输出: 1
try:
stack.pop()
except IndexError as e:
print(e) # 输出: Stack is empty
stack.exit() # 退出栈的模拟
```
阅读全文