设元素值为整型的线性表L,存储200个随机数,分别采用顺序结构和链式结构存储,编写函数,实现线性表的就地逆置
时间: 2024-11-17 08:29:31 浏览: 21
在计算机科学中,线性表的就地逆置是指将线性表中的元素从头到尾逆序排列,而不需要额外的空间。这里以两种常见数据结构——顺序结构(数组)和链式结构(单链表)为例进行说明。
**顺序结构(数组):**
```python
def reverse_seq(arr):
length = len(arr)
# 使用双指针法
left, right = 0, length - 1
while left < right:
arr[left], arr[right] = arr[right], arr[left] # 交换左右元素
left += 1 # 左指针右移
right -= 1 # 右指针左移
# 示例
seq_list = [random.randint(0, 999) for _ in range(200)] # 生成包含200个随机数的列表
reverse_seq(seq_list)
```
**链式结构(单链表):**
```python
class ListNode:
def __init__(self, val=0, next=None):
self.val = val
self.next = next
def reverse_linked_list(head):
prev = None
current = head
while current is not None:
temp = current.next # 记录当前节点的下一个节点
current.next = prev # 将当前节点指向prev,实现逆转
prev = current # 更新prev为当前节点
current = temp # 移动current到下一个节点
return prev # 返回新的头节点
# 示例
head = create_random_linked_list_with_200_nodes() # 创建包含200个随机数的链表
new_head = reverse_linked_list(head)
```
在这个例子中,`create_random_linked_list_with_200_nodes()`是一个假设的函数,用于创建包含200个随机数的链表。
阅读全文