采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
capaxoty要加1 再构造的时候要加一但是。后来使用到的时候是data.length
capacity是用户感知到的一个内容,容量。即用户可能估算的循环队列中可能存储的最大的元素个数。
而data是我们开发者在具体实现中真正使用的底层数据结构。我们一直在操作data。由于我们的设计,循环队列中会浪费一个元素,所以data.length = capacity + 1,之后的逻辑,由于我们要操作data,当然使用的都是data.length:)
实际上,在我们设计的类中,根本就没有存储capacity这个变量:)
加油!:)
非常感谢!
为啥会浪费一个元素
课程中有详细介绍,再仔细理解一下,尤其是我们怎么判断循环队列为空和为满的?看看如果不浪费那一个位置有什么问题?同时,可以思考一下,可不可能不浪费哪一个位置?(可能。具体实现可以参考:https://github.com/liuyubobobo/Play-with-Data-Structures/blob/master/03-Stacks-and-Queues/Optional-01-Loop-Queue-without-Wasting-One-Space/src/LoopQueue.java)加油!
登录后可查看更多问答,登录/注册
动态数组/栈/队列/链表/BST/堆/线段树/Trie/并查集/AVL/红黑树…
10.3k 16
1.4k 17
1.3k 14
1.2k 14