永发信息网

循环队列中,队首指针 指向 队首元素 的什么位置?

答案:4  悬赏:0  手机版
解决时间 2021-11-30 01:26
  • 提问者网友:浩歌待明月
  • 2021-11-29 13:19
循环队列中,队首指针 指向 队首元素 的什么位置?
最佳答案
  • 五星知识达人网友:罪歌
  • 2021-11-29 13:33
队首指针指向实际队首还是队首前空位,这是要看事先约定的。一般有两种方案:方案一、将队首指针指向实际队首,队尾指针指向队尾的下一个空位;方案二、将队首指针指向队首前一个空位,队尾指针指向实际队尾。这两种方案都是可行的,具体选取哪一种,教材一般会事先约定,老师讲课时一般也会事先约定,具体答案以事先约定的为准。但有一点必须要清楚,为什么其中之一要指向空位,而不是两个都指向实际的首尾。这主要是为了避免判空与判满时出现歧义的。假如二者都指向实际首尾,则判空操作为(rear+1)%MaxSize == front,而判满操作也是(rear+1)%MaxSize == front,而当(rear+1)%MaxSize == front时,到底是空还是满呢?这就让人犯难了。
全部回答
  • 1楼网友:愁杀梦里人
  • 2021-11-29 16:44
具体鼓腹击壤
  • 2楼网友:长青诗
  • 2021-11-29 16:21
引用laughlee7468的回答:
队首指针指向实际队首还是队首前空位,这是要看事先约定的。一般有两种方案:方案一、将队首指针指向实际队首,队尾指针指向队尾的下一个空位;方案二、将队首指针指向队首前一个空位,队尾指针指向实际队尾。这两种方案都是可行的,具体选取哪一种,教材一般会事先约定,老师讲课时一般也会事先约定,具体答案以事先约定的为准。但有一点必须要清楚,为什么其中之一要指向空位,而不是两个都指向实际的首尾。这主要是为了避免判空与判满时出现歧义的。假如二者都指向实际首尾,则判空操作为(rear+1)%MaxSize == front,而判满操作也是(rear+1)%MaxSize == front,而当(rear+1)%MaxSize == front时,到底是空还是满呢?这就让人犯难了。纠正楼主一个问题,如果指向队头或者尾的话,判空/满操作为 rear == front,指向对头的前一个还有队尾的后一个楼主说的是对的,感激
  • 3楼网友:忘川信使
  • 2021-11-29 14:46
你好!其实这种问题,没有谁对谁错,看你怎么实现,出这样题的人才是脑残!(有头结点front指针便指向队首元素的队首元素的前一个位置,但其实也可以不指向头结点,你随便指向都行,只是我们习惯了指向头结点而已。你也可以不设头结点,front指针便指向队首第一个元素,但你也可以不指向第一个元素,看你如何实现)我个人认为还是指向第一个元素看着比较顺眼!
纯手打,望采纳,谢谢!
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯