设有一个线性表E = { e1, e2, … , en - 1, en },设计一个算法,将线性表逆置,即使元素排列次序颠倒过来,成为逆线性表E’={ en , en-1 , … , e2 , e1 },
时间: 2024-10-11 13:09:03 浏览: 59
数据结构线性表及其应用实验一
在设计一个算法来逆置线性表时,可以采用迭代或递归的方式。这里提供一个简单的迭代方法,它通过临时存储元素并逐个交换原表中的元素位置来实现:
**C语言伪代码:**
```cpp
// 假设List是线性表的数据结构,包含一个指向首元素的指针head
void reverseLinearList(Node* head) {
Node* prev = NULL; // 初始化前驱节点为NULL
Node* current = head; // 初始化当前节点为头节点
Node* next = NULL; // 初始化后继节点
while (current != NULL) { // 当还有节点需要处理
next = current->next; // 获取当前节点的后一个节点
current->next = prev; // 将当前节点的后继指向前一个节点
prev = current; // 移动前驱节点到当前节点
current = next; // 移动当前节点到后一个节点
}
// 设置新的头节点为原来的尾节点,因为所有元素已经被反转
head = prev;
}
```
在这个伪代码中,我们遍历线性表一次,每次操作都将当前节点的`next`指向前一个节点,然后前进到下一个节点。当遍历结束后,`prev`就是新的头节点。
阅读全文