编写Python程序实现栈的顺序存储(顺序栈SqStack),使其实现建栈、判断栈是否为空、取栈顶元素、入栈、出栈、输出从栈顶到栈底的元素等基本操作
时间: 2024-09-27 17:14:15 浏览: 42
在Python中,我们可以使用内置的list数据结构来创建一个简单的顺序栈(Sequential Stack,也称为List Stack)。以下是实现一个顺序栈`SqStack`的基本操作:
```python
class SqStack:
def __init__(self):
self.stack = []
# 检查栈是否为空
def is_empty(self):
return len(self.stack) == 0
# 添加元素到栈顶
def push(self, item):
self.stack.append(item)
# 取栈顶元素并移除
def pop(self):
if not self.is_empty():
return self.stack.pop()
else:
raise IndexError("Stack is empty")
# 获取栈顶元素但不移除
def top(self):
if not self.is_empty():
return self.stack[-1]
else:
raise IndexError("Stack is empty")
# 输出栈顶到栈底的所有元素
def print_stack(self):
if not self.is_empty():
for item in self.stack:
print(item, end=" ")
print()
else:
print("Stack is empty")
# 示例
stack = SqStack()
stack.push(1)
stack.push(2)
stack.push(3)
print("Before popping:")
stack.print_stack()
print("\nPopped element:", stack.pop())
print("After popping:")
stack.print_stack()
```
在这个实现中,我们利用了list的append和pop方法来完成相应的操作。注意,在尝试弹出元素之前,我们需要检查栈是否为空,以避免在空栈上执行操作引发异常。
阅读全文