关于扩容的问题
来源:3-7 循环队列的实现
无心铁憨憨
2018-11-24
有个问题没有想明白,扩容的前提是 (tail+1)%data.length == front
有这么一种情况,创建一个循环队列,传入容量是5,实际长度是6,在队列都是满的情况下,如果这个时候front的在位置索引1的情况下,再添加元素的时候, (tail+1)%data.length == front这个公式是成立的,就进行扩容,那如果队首的位置在0,队尾的位置在4,这个时候再添加元素,也是应该进行扩容的,因为我们始终是要浪费一个空间,但是这个时候公式是不成立的
写回答
1回答
-
liuyubobobo
2018-11-24
永远不会容量是5,队首是0,队尾是4的情况。
因为在队首是0,对尾是3的时候,添加下一个元素入队,就已经扩容了。之后,容量为10,队首是0,队尾是4:)
052018-11-27
相似问题