编写程序,实现顺序栈的基本运算,并在此基础上设计一个主程序并完成如下功能:(1)初始化栈s;(2)判断栈s是否非空;(3)依次进栈元素A,B,C,D,E;(4)输出栈内元素个数;(5)输出栈顶元素;(6)输出出栈序列;
时间: 2024-11-06 14:19:57 浏览: 15
数据结构栈和队列
编写顺序栈(也称为数组栈或简单堆栈)的基本操作通常包括压栈(push)、弹栈(pop)、查看栈顶元素(top)以及检查栈是否为空(isEmpty)。以下是这个任务的一个基本Python实现:
```python
class Stack:
def __init__(self):
self.stack = []
# 初始化栈
def initialize(self):
self.stack = []
# 判断栈是否为空
def is_empty(self):
return not bool(self.stack)
# 进栈(压栈)
def push(self, item):
self.stack.append(item)
# 出栈(弹栈)
def pop(self):
if not self.is_empty():
return self.stack.pop()
else:
return None
# 输出栈顶元素
def peek(self):
if not self.is_empty():
return self.stack[-1]
else:
return None
# 返回栈内元素个数
def size(self):
return len(self.stack)
# 主程序
def main():
s = Stack() # 初始化栈s
s.initialize() # 确保栈为空
s.push('A') # 进栈A
s.push('B')
s.push('C')
s.push('D')
s.push('E') # 进栈E
print("栈内元素个数:", s.size()) # 输出元素个数
print("栈顶元素:", s.peek()) # 输出栈顶元素
stack_output = []
while not s.is_empty(): # 输出出栈序列
stack_output.append(s.pop())
print("出栈序列:", stack_output) # 打印元素按出栈顺序
if __name__ == "__main__":
main()
```
当你运行这个主程序时,它会按照要求执行所有的操作。请注意,如果尝试从空栈中弹出元素,`pop()`函数将返回`None`。
阅读全文