假设以带头结点的循环链表表示队列,并且只设一个指针指向队尾元素节点(注意不设头指针),编写相应的队列初始化、入队列和出队列的算法。
时间: 2023-06-07 19:12:08 浏览: 94
数据结构算法-习题-答案-带头结点的循环链表表示队列,并且只设一个指针指向队尾元素结点注意不设头指针.docx
5星 · 资源好评率100%
好的,我理解了你的要求,下面是算法实现:
队列的初始化:
```
void init_queue(LinkList &rear) {
rear = new LNode;
rear->next = rear;
}
```
入队列:
```
void en_queue(LinkList &rear, ElemType x) {
LinkList p = new LNode;
p->data = x;
p->next = rear->next;
rear->next = p;
rear = p;
}
```
出队列:
```
bool de_queue(LinkList &rear, ElemType &x) {
if (rear == rear->next) {
return false;
}
LinkList p = rear->next->next;
x = p->data;
rear->next->next = p->next;
if (p == rear) {
rear = rear->next;
}
delete p;
return true;
}
```
以上就是相应的算法实现,希望能够帮到你。
阅读全文