为啥这么

来源:3-7 循环队列的实现

慕移动8576453

2018-12-02

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

写回答

1回答

liuyubobobo

2018-12-02

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


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


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


加油!:)

0
4
liuyubobobo
回复
慕移动8576453
为啥会浪费一个元素答案:否则按照课程中介绍的逻辑,判空和判满的条件将是一样的,都是front == tail,我们就分不清队列里到底是空还是满了:)用实际的数据,仔细理解一下试试看?:)加油!
2018-12-02
共4条回复

玩转数据结构

动态数组/栈/队列/链表/BST/堆/线段树/Trie/并查集/AVL/红黑树…

6221 学习 · 1704 问题

查看课程