为了账号安全,请及时绑定邮箱和手机立即绑定

数据结构,队列的队头指针front、队尾指针rear的问题

数据结构,队列的队头指针front、队尾指针rear的问题

软考《软件设计师教程》上讲队列的部分,存在一点疑问。我对队列的理解:在空队列时,front=rear=null,这时两个指针指向最下面的线没有问题,在入队1个元素后,front不变,仍然为null,rear+1,此时应该指向“0”这个存储单元。在图b中,入队3个元素,则rear应该指向“2”这个存储单元,但图B指向的却是“3”。这时怎么回事呢?另外,队列的头指针和尾指针,指针不应该是指向存储单元的吗?图上的指针都指在分隔线上,这个分隔线表示什么意思啊?
查看完整描述

1 回答

?
慕仙森

TA贡献1827条经验 获得超7个赞

  1. 意思能明白就行,图就甭深究了。我猜图上想表达的意思,是两个指针都存储数组下标,用指向分割线来代表-1,所以在图b中三个元素入队的情况下,Q.front画在了分割线上,表示队列头依然在原始位置,而Q.rear直接指向的是下一空单元。最后队满时,Q.rear也是指向了分割线的,表示(顺序)队列里已经没有新的剩余空间了,所以同样也是-1。

  2. 由1,我觉得看你怎么对两个指针定义了,如果队首指针指向的是首元素、队尾指针指向的是尾元素,那么1个数据元素入队以后,它们应该都指向下标为0的存储单元才对;而如果想让队首指向null代表原始状态,队尾指向尾元素,那就是按你那种算法跑。这个依赖于你的实际定义,算法不一样没关系,只要跑的过测试也没bug就好了。


查看完整回答
反对 回复 2018-10-29
  • 1 回答
  • 0 关注
  • 6662 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信