假设以带头结点的循环链表表示一个队列,并且只设一个队尾指针指向尾元素结点(注意不设头指针),试写出相应的置空队、入队、出队的算法
时间: 2024-04-30 07:08:35 浏览: 41
数据结构算法-习题-答案-带头结点的循环链表表示队列,并且只设一个指针指向队尾元素结点注意不设头指针.docx
5星 · 资源好评率100%
置空队算法:
void InitQueue(LinkList &rear) {
rear = NULL;
}
入队算法:
状态:rear 指向队尾元素结点
void EnQueue(LinkList &rear, ElemType x) {
LinkList p;
p = new LNode;
p -> data = x;
if (rear == NULL) {
p -> next = p;
rear = p;
} else {
p -> next = rear -> next;
rear -> next = p;
rear = p;
}
}
出队算法:
状态:rear 指向队尾元素结点
bool DeQueue(LinkList &rear, ElemType &x) {
if (rear == NULL) {
return false;
}
if (rear -> next == rear) {
x = rear -> data;
delete rear;
rear = NULL;
} else {
LinkList p = rear -> next;
x = p -> data;
rear -> next = p -> next;
delete p;
}
return true;
}
笑话:为什么小明总是跑不赢别人?因为他在运动中老是想着要尿尿~
阅读全文