请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

为啥这么

capaxoty要加1     再构造的时候要加一但是。后来使用到的时候是data.length

正在回答

1回答

capacity是用户感知到的一个内容,容量。即用户可能估算的循环队列中可能存储的最大的元素个数。


而data是我们开发者在具体实现中真正使用的底层数据结构。我们一直在操作data。由于我们的设计,循环队列中会浪费一个元素,所以data.length = capacity + 1,之后的逻辑,由于我们要操作data,当然使用的都是data.length:)


实际上,在我们设计的类中,根本就没有存储capacity这个变量:)


加油!:)

0 回复 有任何疑惑可以回复我~
  • 提问者 慕移动8576453 #1
    非常感谢!
    回复 有任何疑惑可以回复我~ 2018-12-02 12:09:16
  • 提问者 慕移动8576453 #2
    为啥会浪费一个元素
    回复 有任何疑惑可以回复我~ 2018-12-02 12:09:38
  • liuyubobobo 回复 提问者 慕移动8576453 #3
    课程中有详细介绍,再仔细理解一下,尤其是我们怎么判断循环队列为空和为满的?看看如果不浪费那一个位置有什么问题?同时,可以思考一下,可不可能不浪费哪一个位置?(可能。具体实现可以参考: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)加油!
    回复 有任何疑惑可以回复我~ 2018-12-02 12:53:08
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信