编写一个程序实现顺序栈的各种基本运算,并在此基础上设计一个主程序,完成如下功能: (1)初始化顺序栈。 (2)插入元素。 (3)删除栈顶元素。 (4)取栈顶元素。 (5)遍历顺序栈。 (6)置空顺序栈。
时间: 2024-10-10 17:10:33 浏览: 53
首先,我们可以创建一个简单的顺序栈(基于数组实现),并实现上述的基本操作:
```python
class Stack:
def __init__(self):
self.stack = []
# 初始化顺序栈
def init_stack(self):
print("初始化顺序栈...")
self.stack = []
# 插入元素
def push(self, item):
print(f"将元素 {item} 入栈...")
self.stack.append(item)
# 删除栈顶元素
def pop(self):
if len(self.stack) == 0:
print("栈已为空,无法弹出元素.")
return None
else:
print(f"弹出栈顶元素: {self.stack.pop(0)}")
# 取栈顶元素
def top(self):
if not self.is_empty():
print("栈顶元素: ", self.stack[0])
else:
print("栈已为空.")
# 检查栈是否为空
def is_empty(self):
return len(self.stack) == 0
# 遍历顺序栈
def traverse(self):
if not self.is_empty():
print("栈内容: ")
for item in self.stack:
print(item)
else:
print("栈已为空.")
# 置空顺序栈
def clear_stack(self):
print("清空顺序栈...")
self.stack = []
# 主程序
def main():
stack = Stack()
stack.init_stack()
# 实现各个功能
choice = int(input("请输入操作编号(1-6): "))
while choice != 6:
if choice == 1:
item = input("请输入要插入的元素: ")
stack.push(item)
elif choice == 2:
stack.pop()
elif choice == 3:
stack.top()
elif choice == 4:
stack.traverse()
elif choice == 5:
print("清空栈前先查看栈的内容")
stack.traverse()
stack.clear_stack()
else:
print("无效的操作编号,请输入1-6.")
choice = int(input("请输入下一个操作编号(1-6): "))
if __name__ == "__main__":
main()
```
这个程序定义了一个`Stack`类,包含各种基本操作。在`main`函数中,用户可以交互式地选择不同的操作来执行。当用户选择6时,程序结束。
阅读全文