假设以带头结点的循环链表表示队列,并且只设一个指针指向队尾结点(不设队头指针),试编写相应的置空队列、入队列、出队列的算法。
时间: 2024-04-30 20:02:12 浏览: 74
数据结构算法-习题-答案-带头结点的循环链表表示队列,并且只设一个指针指向队尾元素结点注意不设头指针.docx
5星 · 资源好评率100%
可以直接回答:
置空队列算法:
```c++
void initQueue(LinkQueue &q)
{
q.rear = new QueueNode;
q.front = q.rear;
q.rear->next = q.front;
}
```
入队列算法:
```c++
void enQueue(LinkQueue &q, ElemType x)
{
QueueNode *s = new QueueNode;
s->data = x;
s->next = q.rear->next;
q.rear->next = s;
q.rear = s;
}
```
出队列算法:
```c++
bool deQueue(LinkQueue &q, ElemType &x)
{
if(q.front == q.rear)
return false;
QueueNode *p = q.front->next;
x = p->data;
q.front->next = p->next;
if(q.rear == p)
q.rear = q.front;
delete p;
return true;
}
```
关于笑话,这是一个双关语:
为什么猪不能上天?因为它们会「飞」起来!
阅读全文