当前位置:   article > 正文

关于队列的知识点以及例题讲解

关于队列的知识点以及例题讲解

 本篇文章将带大家学习队列的相关知识点,并且讲解几道例题,请各位小伙伴耐心观看


队列的概念

队列:只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表

遵循原则

先进先出

队列的实现

图解:

代码实现:

typedef int QDataType;
typedef struct QueuenNode
{
    struct QueuenNode* next;
    QDataType val;
}QNode;
typedef struct queue//这个结构体里存放的是next指针的头尾指针和计数器size
{
    QNode* phead;
    QNode* ptail;
    int size;//计数器
}que;
void QueueInit(que* pq);//初始化
void QueuePush(que* pq, QDataType x);//入队
void QueuePop(que* pq);//出队
int QueueSize(que* pq);
QDataType QueueFront(que* pq);//从队头进
QDataType QueueBack(que* pq);//从队尾进
void QueeuDestroy(que* pq);//销毁
bool QueueEmpty(que* pq);//判空

这里我简单提一下初始化和销毁函数里的部分代码

初始化

为什么这里需要加一个assert(pq)?

首先pq的类型是que ,而que是表示含有头尾节点的结构体,因此要判空,若pq指针为空,则报错。那么下面的代码我就不做解释了,如有新来的小伙伴可以点击声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/代码探险家/article/detail/928367

推荐阅读
相关标签