用户自定义数组,利用单链表存储该数组,并实现将其逆转
时间: 2024-05-01 12:19:35 浏览: 53
。可以使用单链表来存储用户自定义数组,每个链表节点存储一个数组元素。然后,可以通过遍历链表,将整个数组逆转。
以下是实现代码的一个例子:
```python
class Node:
def __init__(self, value):
self.value = value
self.next = None
def reverse_list(head):
prev = None
curr = head
while curr is not None:
next_node = curr.next
curr.next = prev
prev = curr
curr = next_node
return prev
# 示例程序
if __name__ == "__main__":
# 读入数组长度和元素
n = int(input())
arr = []
for i in range(n):
arr.append(int(input()))
# 创建链表
head = Node(arr[0])
curr = head
for i in range(1, n):
node = Node(arr[i])
curr.next = node
curr = node
# 打印原数组
print("Original array:")
curr = head
while curr is not None:
print(curr.value, end=" ")
curr = curr.next
print()
# 链表逆转
head = reverse_list(head)
# 打印逆转后的数组
print("Reversed array:")
curr = head
while curr is not None:
print(curr.value, end=" ")
curr = curr.next
print()
```
然后,您可以输入要逆转的数组元素(例如3、4、2、1),然后程序将打印出原始和逆转后的数组。
注意:本程序中使用了单向链表,如果需要在原始数组中进行顺序更改,需要使用双向链表。
阅读全文