在复习数据结构——队列这一节时遇到了一些问题,现总结如下,以便以后查阅:
- 在队列的顺序存储方式里,为了避免存储空间的“假溢出”,充分利用存储空间,我们用了一种实现方式,即循环队列。
(1). 图中有两个指针(只是两个整型变量,因为在这里有指示作用,所以理解为指针) front、rear,一个指示队头,一个指示队尾(这里注意:rear定义为指向队尾元素还是队尾元素的下一个空间)。
(2). rear和front互相追赶着,这个追赶过程就是队列添加和删除的过程,如果rear追到head说明队列满了,如果front追到rear说明队列为空。
如此一来,将出队的剩余的空间给予入队,满足了有限空间里的利用率要求。这些都是显而易见的。
- 第二点是由第一点那个rear指针发散的。实在是网上的博客资料太多,不同的书本里又说法不一。比如,老师上课说的是rear指针是指向队尾元素的,但我的一本书上却是指向队尾元素的下一个位置。我对照着写代码于是就出现了这样的问题: