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

发布于 2022-09-11 14:27:52 字数 440 浏览 17 评论 0

软考《软件设计师教程》上讲队列的部分,存在一点疑问。

图片描述

我对队列的理解:

  1. 在空队列时,front=rear=null,这时两个指针指向最下面的线没有问题,
  2. 在入队1个元素后,front不变,仍然为null,rear+1,此时应该指向“0”这个存储单元。
  3. 在图b中,入队3个元素,则rear应该指向“2”这个存储单元,但图B指向的却是“3”。

这时怎么回事呢?

  1. 另外,队列的头指针和尾指针,指针不应该是指向存储单元的吗?图上的指针都指在分隔线上,这个分隔线表示什么意思啊?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

鹿港巷口少年归 2022-09-18 14:27:52
  1. 意思能明白就行,图就甭深究了。我猜图上想表达的意思,是两个指针都存储数组下标,用指向分割线来代表-1,所以在图b中三个元素入队的情况下,Q.front画在了分割线上,表示队列头依然在原始位置,而Q.rear直接指向的是下一空单元。最后队满时,Q.rear也是指向了分割线的,表示(顺序)队列里已经没有新的剩余空间了,所以同样也是-1。
  2. 由1,我觉得看你怎么对两个指针定义了,如果队首指针指向的是首元素、队尾指针指向的是尾元素,那么1个数据元素入队以后,它们应该都指向下标为0的存储单元才对;而如果想让队首指向null代表原始状态,队尾指向尾元素,那就是按你那种算法跑。这个依赖于你的实际定义,算法不一样没关系,只要跑的过测试也没bug就好了。
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文