编写程序,创建顺序栈,实现可输入进栈数据,可输出出栈序列
时间: 2023-11-27 22:04:30 浏览: 90
好的,我来给你写一个 Python 版本的顺序栈,可以进行进栈和出栈操作:
```python
class SeqStack:
def __init__(self, capacity):
self.capacity = capacity # 栈的容量
self.stack = [None] * capacity # 初始化栈
self.top = -1 # 栈顶指针,初始值为-1
def is_empty(self):
return self.top == -1 # 栈顶指针为-1,说明栈为空
def is_full(self):
return self.top == self.capacity - 1 # 栈顶指针已经到达栈的容量-1,说明栈已满
def push(self, data):
if self.is_full():
print("栈已满,无法进行进栈操作!")
return
self.top += 1 # 栈顶指针加1
self.stack[self.top] = data # 将数据压入栈顶
def pop(self):
if self.is_empty():
print("栈已空,无法进行出栈操作!")
return
data = self.stack[self.top] # 取出栈顶数据
self.top -= 1 # 栈顶指针减1
return data
def output(self):
if self.is_empty():
print("栈为空!")
return
print("出栈序列为:", end="")
while not self.is_empty():
data = self.pop() # 依次取出栈中的数据
print(data, end=" ")
```
使用示例:
```python
stack = SeqStack(5) # 创建容量为5的顺序栈
for i in range(5):
data = int(input("请输入进栈数据:"))
stack.push(data)
stack.output() # 输出出栈序列
```
运行示例:
```
请输入进栈数据:1
请输入进栈数据:2
请输入进栈数据:3
请输入进栈数据:4
请输入进栈数据:5
出栈序列为:5 4 3 2 1
```
阅读全文