20 - 队列 - 链队列——队列的链式表示和实现

前面我们学习了 先进先出、后进后出 的线性表- 队列,并且我们是使用数组进行了实现,那么这节课我们来使用链表来实现队列,即链队列!

队列的定义

队列(Queue)也是一种线性表, 但是它仅能在一端进行插入,而另一端进行删除的操作 ,插入的一端称为 队尾rear,删除的一端称为 队头front 。 向一个栈插入新元素又称作进队或入队, 从一个栈删除元素又称作出队或离队 。显而易见,它的特性是 先进先出、后进后出 。

链式队列内存中的结构

20 - 队列 - 链队列——队列的链式表示和实现_第1张图片

 

链式队列的特点

先进先出、后进后出

队列的定义一般遵循此结构:

//链表结构
struct Node
{
    ElemType elem;
    struct Node* next;
};

//定义队列
struct  Queue
{ 
    struct Node* front;// 队头删除
    struct Node* rear; // 队尾插入
};

从上面我们可以看出, 队列的实现采用的是链表,同时需要设置两个变量front与rear分别记录队列前后端的地址,front会随着数据删除而改变,rear会随着数据插入而改变。

队列的C语言实现:

#include
#include 

typedef

你可能感兴趣的:(Windows,Linux,C/C++,高级编程,算法/数据结构,算法,数据结构,链表,栈,排序算法)