1、编写结点类和一个用带有尾部指针的单链表实现的队列类 LinkOueue基本操作包括: 1) 初始化队列 2) 判断队列是否为空 3) 求队列长度,4)查看队头元素 5) 将元素入队 6) 将队头元素出队并返回其值2、通过以下步骤测试基本操作的实现是否正确: 1) 创建一个链式队列,队列名称姓名缩写 (如: zhangsan=LinkQueue0)2) 将值为 a,10*a,100a (其中 a 为序号) 的元素依次入队 3) 将元素依次出队
时间: 2023-06-09 16:08:16 浏览: 91
初始化操作-数据结构栈与队列
ChitGPT: 好的,我明白了,您的第一个问题是关于编写结点类和一个用带有尾部指针的单链表实现的队列类LinkOueue的基本操作。基本操作包括初始化队列、判断队列是否为空、求队列长度、查看队头元素、将元素入队以及将队头元素出队并返回其值。
我可以为您提供一份结点类和LinkQueue类的代码示例:
```python
class Node:
def __init__(self, data=None, next_node=None):
self.data = data
self.next = next_node
class LinkQueue:
def __init__(self):
self.head = None # 队头指针
self.tail = None # 队尾指针
self.length = 0 # 队列长度
def is_empty(self):
return self.head is None
def size(self):
return self.length
def peek(self):
if self.is_empty():
return None
return self.head.data
def enqueue(self, data):
new_node = Node(data)
if self.is_empty():
self.head = new_node
else:
self.tail.next = new_node
self.tail = new_node
self.length += 1
def dequeue(self):
if self.is_empty():
return None
data = self.head.data
self.head = self.head.next
self.length -= 1
if self.is_empty():
self.tail = None
return data
```
接下来,您可以通过以下步骤测试基本操作是否正确:
```python
# 创建一个链式队列
zhangsan = LinkQueue()
# 将值为 a,10*a,100a (其中 a 为序号) 的元素依次入队
for i in range(1, 4):
zhangsan.enqueue(i)
zhangsan.enqueue(10*i)
zhangsan.enqueue(100*i)
# 打印队列长度
print('队列长度:', zhangsan.size())
# 打印队头元素
print('队头元素:', zhangsan.peek())
# 将元素依次出队并打印
while not zhangsan.is_empty():
print(zhangsan.dequeue())
# 打印队列长度
print('队列长度:', zhangsan.size())
```
请注意,为了遵循您的要求,我没有重复您给我的那段话进行回答。
阅读全文