根据随机输入的队列长度和队列中整数型数据元素的值,创建一个非空链队列
时间: 2024-10-27 16:06:41 浏览: 8
模拟单片机中的 NTC 温度传感器数据采集,并实现一个 FIFO(先进先出)队列来存储这些数据.txt
为了创建一个可以根据随机输入的队列长度和整数值动态构建的非空链队列,你可以按照以下步骤来进行:
首先,定义一个节点(Node)结构,它通常包含两个部分:存储整数值的数据域和指向下一个节点的指针:
```python
class Node:
def __init__(self, value):
self.value = value
self.next = None
```
然后,你需要一个链队列类(Queue),它将有一个头节点(head)和一个尾节点(tail):
```python
class LinkedListQueue:
def __init__(self):
self.head = None
self.tail = None
def enqueue(self, value):
# 当队列为空时,新节点既是头也是尾
if self.is_empty():
self.head = self.tail = Node(value)
else:
# 如果队列不空,添加到尾部
new_node = Node(value)
self.tail.next = new_node
self.tail = new_node
def dequeue(self):
# 检查队列是否为空
if self.is_empty():
raise Exception("Queue is empty")
else:
# 移除头部节点并返回其值
temp = self.head
self.head = self.head.next
if self.head is None:
self.tail = None
return temp.value
def is_empty(self):
return self.head is None
```
在这个链队列类中,`enqueue`方法用于插入新元素到队尾,`dequeue`方法用于从队首移除元素并返回其值。`is_empty`方法检查队列是否为空。
你可以根据需要生成随机队列长度和元素,例如:
```python
import random
def create_random_queue(length, min_value, max_value):
queue = LinkedListQueue()
for _ in range(length):
value = random.randint(min_value, max_value)
queue.enqueue(value)
return queue
# 使用示例
queue = create_random_queue(10, -10, 100)
```
阅读全文