大话数据结构005 队列
队列
队列其实就是常见的排队数据结构。
一端插入,另一端删除,属于先入先出(FIFO)。
队列的数据模型
队列的入队
在尾部插入元素即可
队列的出队
在头部删除元素,其他元素前移即可
改进型队列1
使用队头指针和队尾指针进行数据操作。
当队列为空的时候,队头指针与队尾指针均指向第一个元素,当队列不为空的时候,队头指针依然指向第一个元素,队尾指针指向最后一个元素的下一个位置。
改进型队列2
上述的改进型队列存在一个问题,当队尾指针到达存储空间的末尾,将无法继续执行入队操作,然而,队列的前部分空闲了很多位置。
将队列搞成循环的可以解决这个问题:
链式存储的队列
链式存储的队列的入队操作
在队尾添加元素即可。将队尾元素的直接后继指向当前待插入元素,当前待插入元素直接后继设为空。(尾插法)
链式存储的队列的出队操作
将队头指针指向待删除元素的直接后继,删除当前元素即可。