1.编写功能菜单程序;(必须完成) 2.实现栈的初始化、遍历、入栈、出栈4个基本操作;(必须完成) 3.选择顺序存储结构或者链式存储结构都可以。
时间: 2024-10-10 21:10:24 浏览: 45
1. 编写功能菜单程序通常是为了创建一个用户友好的界面,让用户可以选择栈的操作。这个程序可以包括以下几个步骤:
- **主菜单**:显示选项,如"初始化栈","查看栈内容","入栈元素","出栈元素"等。
- **函数实现**:每个选项对应相应的函数,比如:
- `init_stack()` 初始化一个空的栈,如果使用顺序存储,可能会创建一个数组,链式存储则会创建头节点。
- `print_stack()` 遍历并打印当前栈的所有元素,对于顺序存储,从第一个元素开始逐个访问;对于链式存储,需要从头部节点开始递归或迭代访问。
- `push(element)` 向栈顶添加新元素,如果是顺序存储,在末尾添加;如果是链式存储,将新元素链接到头部。
- `pop()` 删除并返回栈顶元素,顺序存储删除最后一个元素,链式存储则移除头部节点。
2. 栈的基本操作代码示例(假设使用Python):
```python
class Stack:
def __init__(self, storage_type='list'): # 初始为空栈
self.storage = [] if storage_type == 'list' else []
# 入栈
def push(self, item):
self.storage.append(item)
# 出栈
def pop(self):
if not self.is_empty():
return self.storage.pop()
else:
raise IndexError("Stack is empty")
# 查看栈顶元素(不改变栈)
def peek(self):
if not self.is_empty():
return self.storage[-1]
else:
return None
# 判断栈是否为空
def is_empty(self):
return len(self.storage) == 0
# 初始化
stack = Stack()
# 遍历
for item in stack.storage:
print(item)
# 使用方法
stack.push('A')
stack.push('B')
print(stack.peek()) # 输出:B
stack.pop() # 输出:B
```
阅读全文