front,tail的问题

来源:3-6 循环队列

颠覆123

2021-02-01

老师好,为什么front是数组中的第一个元素,而tail却不是数组中的最后一个元素,而是最后一个元素的后一个元素? 这就好比是一头大象,front是大象的头,但tail不是大象的尾巴。假设front是第一个元素,tail是最后一个元素,front初始值设置为0,tail初始值设置为-1,这样可以表示此时的数组是空数组;当fonrt==tail时,代表数组满了,这样就不用浪费一个元素的空间了,您看我这样考虑是否妥当?

写回答

1回答

liuyubobobo

2021-02-01

front 初始是 0,tail 初始是 -1。

tail 指向最后一个元素,所以添加一个元素以后,tail 变成了 0。front 指向第一个元素,那还是 0。

此时 front == tail 了。但是,整个队列里只有一个元素,不满。


把你想象的逻辑,实际用代码表达一下,然后用实际的数据测试一下,试试看?


继续加油!:)

0
3
颠覆123
回复
liuyubobobo
确实如此,谢谢老师!
2021-02-01
共3条回复

玩转数据结构

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

6221 学习 · 1704 问题

查看课程