随机生成10个整数存入一个循环双向链表中,然后按序输出这些整数和逆序输出这些整数。
时间: 2023-04-14 18:04:37 浏览: 121
可以按照以下步骤实现:
1. 定义一个循环双向链表,并初始化为空。
2. 使用随机数生成器生成10个整数,并将它们插入到链表中。
3. 遍历链表,按序输出这些整数。
4. 从链表的尾部开始遍历,逆序输出这些整数。
代码示例:
```python
import random
# 定义循环双向链表节点类
class Node:
def __init__(self, data):
self.data = data
self.prev = None
self.next = None
# 定义循环双向链表类
class DoubleLinkedList:
def __init__(self):
self.head = None
# 在链表尾部插入节点
def append(self, data):
new_node = Node(data)
if not self.head:
self.head = new_node
self.head.prev = self.head
self.head.next = self.head
else:
last_node = self.head.prev
last_node.next = new_node
new_node.prev = last_node
new_node.next = self.head
self.head.prev = new_node
# 遍历链表,按序输出整数
def print_forward(self):
if not self.head:
print("链表为空")
return
current_node = self.head
while current_node.next != self.head:
print(current_node.data, end=" ")
current_node = current_node.next
print(current_node.data)
# 从链表尾部开始遍历,逆序输出整数
def print_backward(self):
if not self.head:
print("链表为空")
return
current_node = self.head.prev
while current_node != self.head:
print(current_node.data, end=" ")
current_node = current_node.prev
print(current_node.data)
# 生成10个随机整数,并插入到链表中
double_linked_list = DoubleLinkedList()
for i in range(10):
double_linked_list.append(random.randint(1, 100))
# 按序输出整数
print("按序输出整数:")
double_linked_list.print_forward()
# 逆序输出整数
print("逆序输出整数:")
double_linked_list.print_backward()
```
输出结果:
```
按序输出整数:
77 89 29 95 20 38 83 62 57 94
逆序输出整数:
94 57 62 83 38 20 95 29 89 77
```
阅读全文