赞
踩
本篇文章将带大家学习队列的相关知识点,并且讲解几道例题,请各位小伙伴耐心观看
先进先出
图解:
代码实现:
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
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。