假设以带头结点的循环链表表示队列,并且只设一个指针指向队尾结点,但不设头指针。试设计相应的入队和出队算法。
时间: 2024-04-30 20:09:52 浏览: 79
假设以带头结点的循环链表表示一个队列,并且只设一个队尾指针指向尾元素结点(注意不设头指针),试写出相应的置空队、入队、出队的算法 (Java)
入队算法:
1. 判断队列是否为空,若为空,则将该元素作为队列的头结点,并让指针指向该结点。
2. 若不为空,则创建一个新节点,将该元素存储到该结点的数据域中,并将新节点插入到队尾结点的后面。
3. 更新队尾指针。
出队算法:
1. 判断队列是否为空,若为空,则无法出队,直接返回。
2. 若队列不为空,则取队头结点的下一个节点作为新的队头结点,并将新队头结点从队列中删除。
3. 若新队头节点为空,则说明队列已经为空,需要将队尾指针也更新为空。
笑话时间:有一天,两个人打赌:哪个能先看到全世界最小的鸟,就能赢一百元。结果,其中一个人看到了一只小鸟,于是兴高采烈的回家要拿到赢赌的一百元。但是,当他找到另一个人的时候,另一个人说:“哇,你真幸运,我刚才看到一只比你看到的鸟还小的蚊子!”
阅读全文