编写算法实现顺序表中元素的逆置,要求按用户输入的数据建立一个顺序表
时间: 2024-10-15 12:16:41 浏览: 23
小白算法积累——顺序表2#逆置
编写一个简单的算法来逆置顺序表(也称为线性表或数组),可以分为以下几个步骤:
1. 初始化:首先,你需要创建一个顺序表结构,包含一个数组用于存储数据,以及两个指针,一个指向开始位置(front), 另一个指向结束位置(end)。
```python
class Node:
def __init__(self, data):
self.data = data
self.next = None
class LinkedList:
def __init__(self):
self.head = None
self.size = 0
def build_list(input_data):
# 用户输入数据并插入节点到链表
for data in input_data:
new_node = Node(data)
if not self.head:
self.head = new_node
else:
current = self.head
while current.next:
current = current.next
current.next = new_node
self.size += 1
```
2. 逆置过程:接下来,我们通过双指针法(类似于翻转硬币的操作)来逆置顺序表。
```python
def reverse_list(self):
prev = None
current = self.head
while current is not None:
next_temp = current.next # 保存当前节点的下一个节点
current.next = prev # 将当前节点连接到前一个节点
prev = current # 更新前一个节点为当前节点
current = next_temp # 移动到下一个节点
self.head = prev # 最后将头节点设为新的开始节点
```
3. 测试和逆置操作:
```python
input_data = [1, 2, 3, 4, 5]
linked_list = LinkedList()
linked_list.build_list(input_data)
# 逆置后
linked_list.reverse_list()
# 打印逆置后的列表
current = linked_list.head
while current is not None:
print(current.data, end=" ")
current = current.next
```
阅读全文