编写一个程序实现顺序栈的基本运算。输入: abcde 输出: (1)初始化栈s (2)栈为空 (3)依次进栈元素:a b c d e (4)栈为非空 (5)出栈序列:e d c b a (6)栈为空 (7)释放栈
时间: 2024-10-10 16:03:48 浏览: 41
为了实现顺序栈的基本运算,你可以使用Python语言编写一个简单的模拟栈的数据结构。这里是一个简化的示例,展示了如何处理上述的输入和输出步骤:
```python
class Stack:
def __init__(self):
self.stack = []
self.size = 0
# 初始化栈
def initialize(self, input_string):
for char in input_string:
self.push(char)
# 判断栈是否为空
def is_empty(self):
return not bool(self.stack)
# 进栈(压栈)
def push(self, item):
self.stack.append(item)
self.size += 1
print(f"(3)依次进栈元素: {item}")
# 出栈(弹栈)
def pop(self):
if not self.is_empty():
item = self.stack.pop()
print(f"(5)出栈元素: {item}")
self.size -= 1
else:
print("(4)栈为空")
# 获取栈顶元素,但不移除
def peek(self):
if not self.is_empty():
print(f"(2)栈顶元素: {self.stack[-1]}")
else:
print("(4)栈为空")
# 清空栈
def empty(self):
self.stack.clear()
self.size = 0
print("(6)栈为空")
# 测试程序
s = Stack()
input_str = "abcde"
s.initialize(input_str)
# 操作栈
s.peek() # (2)栈顶元素: e
s.pop() # (5)出栈元素: e
s.pop() # (5)出栈元素: d
# ...重复直到栈空
```
运行这个程序,你会看到按照给定的步骤打印出相应的操作结果。
阅读全文