python实现给定一个顺序表A=(a1,a2,...an), 将其进行就地逆置,得到A=(an, ...., a2, a1)
时间: 2024-04-16 22:28:03 浏览: 68
顺序表就地逆置
要实现给定的顺序表 A 进行就地逆置,可以使用双指针的方法。我们使用两个指针,一个指向列表的起始位置,另一个指向列表的末尾位置,然后交换两个指针所指向的元素,并依次向中间移动指针,直到两个指针相遇。
以下是实现该功能的 Python 代码示例:
```python
def reverse_list(lst):
start = 0 # 起始位置指针
end = len(lst) - 1 # 结束位置指针
while start < end:
lst[start], lst[end] = lst[end], lst[start] # 交换元素
start += 1
end -= 1
# 测试
A = [1, 2, 3, 4, 5]
reverse_list(A)
print(A) # 输出 [5, 4, 3, 2, 1]
```
在上述代码中,我们先初始化起始位置指针 `start` 为0,结束位置指针 `end` 为 `len(lst) - 1`(即列表末尾)。然后,我们使用while循环来交换 `start` 和 `end` 所指向的元素,并向中间移动指针。当 `start` 不再小于 `end` 时,即两个指针相遇时,循环结束。最后,我们输出逆置后的顺序表 `A`。
请注意,上述代码实现的是就地逆置,也就是直接修改原始列表。如果你不想修改原始列表,可以使用 `reversed()` 函数来创建一个新的逆置后的列表。例如,`reversed(A)` 将返回一个逆置后的列表,但不会修改原始列表 `A`。
阅读全文