1:队列的含义:
队列是只允许在一端进行插入操作(称为队尾),而在另一端进行删除操作(称为队头)的线性表。(元素有限)
特点:先进先出。相邻元素间有前驱和后继关系。
2:循环队列含义:
头尾相接的顺序存储结构称为循环队列。注:队中元素有限。
队列顺序存储的不足:1)当第一个元素(下标为0)移出队列后,后面的元素均要向前移动,以保证队头不为空。2)当不限制队头位置必须在下标为0 处时,会出现假溢出情况。(即前面可能出了2个元素,队头从第三个元素开始,再进入几个元素,队列除了前面两个空位就满了)而循环队列可以解决假溢出的情况。
3:front指针:指向队头元素 rear指针:指向最后一个元素的下一个位置
Front和rear都是下标的值,不是地址。
队列满 的条件:(rear + 1) % QueueSize = front
队列长度:(rear – front + QueueSize) % QueueSize (即最大的下标)
队列为空时,front 和 rear都指向同一个下标
4:链队列:尾进头出的单链表
front 指向头结点rear 指向终端结点(其指针域为NULL)。空队列时,front 和 rear 都指向头结点。
5:栈和队列的异同:
异:栈是限定在表尾进行插入和删除的线性表;而队列值允许咋一端插入,而在另一端进行删除操作的线性表。
同:采用顺序结构的顺序栈和顺序队列中的容量有限,所以针对这个缺点可以采用链式的存储结构。