请稍等 ...
×

采纳答案成功!

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

front,tail的问题

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

正在回答 回答被采纳积分+3

1回答

liuyubobobo 2021-02-01 15:24:18

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

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

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


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


继续加油!:)

0 回复 有任何疑惑可以回复我~
  • 提问者 颠覆123 #1
    嗯哪,老师说的对,初始值front=0,tail=0, 可以判断当 front !=0 && tail !=0 && front ==tail 时,数组满了。
    回复 有任何疑惑可以回复我~ 2021-02-01 15:27:21
  • liuyubobobo 回复 提问者 颠覆123 #2
    还是不对。虽然初始的时候 front 为 0,但是向队列中加元素,front 会移动。比如先添加三个元素,tail 就到 2 了,再出队三个元素,front 也到 2 了。此时 front == tail,但队列里没有元素。
    回复 有任何疑惑可以回复我~ 2021-02-01 15:31:31
  • 提问者 颠覆123 回复 liuyubobobo #3
    确实如此,谢谢老师!
    回复 有任何疑惑可以回复我~ 2021-02-01 15:50:08
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信