请设计一个队列,要求满足: 初始时队列为空; ②入队时,允许增加队列占用空间; ③出队后,出队元素所占用的空间可重复使用,即整个队列所占用的空间只增不减; ④入队操作和出队操作的时间复杂度始终保持为O(1)。 请回答下列问题: 画出队列的初始状态,并给出

admin2020-06-17  23

问题 请设计一个队列,要求满足:
初始时队列为空;
②入队时,允许增加队列占用空间;
③出队后,出队元素所占用的空间可重复使用,即整个队列所占用的空间只增不减;
④入队操作和出队操作的时间复杂度始终保持为O(1)。
请回答下列问题:
画出队列的初始状态,并给出判断队空和队满的条件。

选项

答案该循环链式队列的实现,可以参考循环队列,不同之处在于循环链式队列可以方便增加空间,出队的结点可以循环利用,入队时空间不够也可以动态增加。同样,循环链式队列也要区分队满和队空的情况,这里参考循环队列牺牲一个单元来判断。初始时,创建只有一个空闲结点的循环单链表,头指针front和尾指针rear均指向空闲结点,如下图所示。 [*] 队空的判定条件: front==rear。 队满的判定条件: front==rear->next。

解析
转载请注明原文地址:https://kaotiyun.com/show/NU3i777K
0

最新回复(0)