赞
赏
队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和 栈 一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头。
队列中指定了用来插入数据的一端。
队列中指定了用来删除数据的一端。
数据的插入动作。
数据的删除动作。
队列的实现可以分为链式队列和静态队列,链式队列使用链表来实现,具体结构如下:
静态队列使用数组来实现,具体结构如下:
队列的结构定义如下:
typedef struct Node
{
int data; //队列每个结点的数据
struct node *pNext; //当前结点的下一个结点的地址
}NODE, *PNODE;
struct Queue
{
PNODE pHead; //头指针
PNODE pTail; //尾指针
};
我们在定义队列结构之前,首先定义了一个 Node 结点,其结构是一个链表的结构,保存了结点元素的值和下一个元素的指针。
队列结构的定义其实就是一个包含队列头结点 pHead 和队列尾结点 pTail 的元素的结构。