大话数据结构005 队列

队列

 

队列其实就是常见的排队数据结构。

一端插入,另一端删除,属于先入先出(FIFO)。

大话数据结构005 队列

 

队列的数据模型

 

大话数据结构005 队列

 

队列的入队

 

在尾部插入元素即可

大话数据结构005 队列

 

队列的出队

 

在头部删除元素,其他元素前移即可

大话数据结构005 队列

 

改进型队列1

 

使用队头指针和队尾指针进行数据操作。

大话数据结构005 队列

当队列为空的时候,队头指针与队尾指针均指向第一个元素,当队列不为空的时候,队头指针依然指向第一个元素,队尾指针指向最后一个元素的下一个位置。

 

改进型队列2

 

上述的改进型队列存在一个问题,当队尾指针到达存储空间的末尾,将无法继续执行入队操作,然而,队列的前部分空闲了很多位置。

将队列搞成循环的可以解决这个问题:

大话数据结构005 队列

 

链式存储的队列

大话数据结构005 队列

大话数据结构005 队列

 

链式存储的队列的入队操作

 

在队尾添加元素即可。将队尾元素的直接后继指向当前待插入元素,当前待插入元素直接后继设为空。(尾插法)

大话数据结构005 队列

大话数据结构005 队列

 

链式存储的队列的出队操作

 

将队头指针指向待删除元素的直接后继,删除当前元素即可。

大话数据结构005 队列

大话数据结构005 队列