python 利用顺序栈实现序列的倒序
时间: 2023-10-26 13:13:52 浏览: 125
可以使用顺序栈的后进先出的特点,将序列中的元素依次入栈,然后再依次出栈,即可实现序列的倒序。
具体实现步骤如下:
1. 定义一个空的顺序栈,并将待倒序的序列依次入栈。
2. 定义一个新的列表,用于存储出栈的元素,即倒序排列后的序列。
3. 循环出栈操作,直到顺序栈为空。每次出栈的元素加入新的列表中。
4. 返回新的列表,即为倒序排列后的序列。
以下是示例代码:
```python
class SeqStack:
# 定义顺序栈类
def __init__(self, maxsize=10):
self.maxsize = maxsize
self.stack = [None] * self.maxsize
self.top = -1
def is_empty(self):
return self.top == -1
def is_full(self):
return self.top == self.maxsize - 1
def push(self, data):
if self.is_full():
raise Exception("Stack is full.")
else:
self.top += 1
self.stack[self.top] = data
def pop(self):
if self.is_empty():
raise Exception("Stack is empty.")
else:
data = self.stack[self.top]
self.top -= 1
return data
def __repr__(self):
return str(self.stack[:self.top + 1])
def reverse_seq(seq):
# 利用顺序栈实现序列的倒序
stack = SeqStack()
for i in seq:
stack.push(i)
new_seq = []
while not stack.is_empty():
new_seq.append(stack.pop())
return new_seq
```
使用示例:
```python
>>> seq = [1, 2, 3, 4, 5]
>>> reverse_seq(seq)
[5, 4, 3, 2, 1]
```
阅读全文