当前位置: 首页 > news >正文 网站改版需求说明网站弹幕代码 news 2025/10/29 12:54:23 网站改版需求说明,网站弹幕代码,网站做1920px好吗,手机端网站模板目录 一.队列的概念及结构 二.队列的实现 2.1队列的结构 2.2初始化队列 2.3队尾入队列 2.4队头出队列 2.5获取队列头部元素 2.6获取队列队尾元素 2.7获取队列中有效元素个数 2.8检测队列是否为空 2.9销毁队列 三.C 版本模拟实现队列 一.队列的概念及结构 队列…目录 一.队列的概念及结构 二.队列的实现 2.1队列的结构 2.2初始化队列 2.3队尾入队列 2.4队头出队列 2.5获取队列头部元素 2.6获取队列队尾元素 2.7获取队列中有效元素个数 2.8检测队列是否为空 2.9销毁队列 三.C 版本模拟实现队列 一.队列的概念及结构 队列只允许在一端进行插入数据操作在另一端进行删除数据操作的特殊线性表队列具有先进先出FIFO(First In First Out) 入队列进行插入操作的一端称为队尾 出队列进行删除操作的一端称为队头 二.队列的实现 队列也可以数组和链表的结构实现使用链表的结构实现更优一些因为如果使用数组的结构出队列在数组头上出数据效率会比较低。 2.1队列的结构 首先先建立一个单链表用来存储数据和链接结构 然后建立队列队列有俩个节点一个指向队列的开始一个指向结尾 size 用于存储队列长度 // 链式结构表示队列 typedef struct QListNode { struct QListNode* _pNext; QDataType _data; }QNode;// 队列的结构 typedef struct Queue { QNode* _front; QNode* _rear; int size; }Queue; 2.2初始化队列 队列的初始化把队列的头尾都指向空size设为0 void QueueInit(Queue* q) {q-front NULL;q-rear NULL;q-size 0; } 2.3队尾入队列 1.首先malloc一个节点cur 2.判断malloc是否开辟成功 3.给创建成功的节点进行赋值 4.判断如果队列为空直接插入节点即可使队列的头尾都指向这个节点 5.如果不为空使队列的尾的下一个位置指向新创建的节点在然后队列的尾指向这个节点 6.最后数据加一size void QueuePush(Queue* q, QDataType data) {QNode* cur (QNode*)malloc(sizeof(QNode));if (cur NULL){perror(malloc );exit(-1);}cur-data data;cur-next NULL;if (q-rear NULL){q-front q-rear cur;}else{q-rear-next cur;q-rear cur;}q-size; } 2.4队头出队列 1.先判断队列是否只有为空如果是退出 2.如果队列只有一个数据直接对队列进行销毁即可 3.如果队列有多个数据新建一个节点cur等于队列“头”的下一个地址然后释放掉队头再把队头指向cur以前对头的下一个地址使得第二个数据成为队头 4.最后数据减一size-- void QueuePop(Queue* q) {if(q-frontNULL){exit(-1);}if (q-front-next NULL){free(q-front);q-front q-rear NULL;}else{QNode* cur q-front-next;free(q-front);q-front cur;}q-size--; } 2.5获取队列头部元素 直接取头指向的数据即可 QDataType QueueFront(Queue* q) {return q-front-data; } 2.6获取队列队尾元素 直接取队列尾指向的元素即可 QDataType QueueBack(Queue* q) {return q-rear-data; } 2.7获取队列中有效元素个数 直接返回队列的size int QueueSize(Queue* q) {return q-size; } 2.8检测队列是否为空 检测队列是否为空如果为空返回非零结果如果非空返回0 bool QueueEmpty(Queue* q) {return q-front NULL q-rear NULL; } 2.9销毁队列 1.采用while循环依次把队列中的节点全部释放 2.使队列头尾指向空并且size置为0 void QueueDestroy(Queue* q) {QNode* cur q-front;while (cur){QNode* del cur;cur cur-next;free(del);}q-front NULL;q-rear NULL;q-size 0; }三.C 版本模拟实现队列 考虑到学校有好多老师上课虽然说得是用c语言实现却用cpp进行操作现在给大家更新cpp版本的队列的模拟实现cpp版本的扩容使用的new函数参数使用的可能有同学对指针使用不太熟悉所以我们同意用引用来实现方便大家的理解就不再详细的进行说明了思路跟c语言实现的一样只是c和cpp的语言差距有所不同。 #includeiostream #includeassert.h using namespace std;typedef int QDataType;typedef struct QListNode {struct QListNode* next;QDataType data; }QNode;// 队列的结构 typedef struct Queue {QNode* front;QNode* rear;int size; }Queue;// 初始化队列 void QueueInit(Queue q) {q.front NULL;q.rear NULL;q.size 0; } // 队尾入队列 void QueuePush(Queue q, QDataType data) {QNode* cur new QNode[sizeof(QNode)];if (cur NULL){perror(malloc );exit(-1);}cur-data data;cur-next NULL;if (q.rear NULL){q.front q.rear cur;}else{q.rear-next cur;q.rear cur;}q.size; } // 队头出队列 void QueuePop(Queue q) {if (q.front-next NULL){delete q.front;q.front q.rear NULL;}else{QNode* cur q.front-next;delete q.front;q.front cur;}q.size--; } // 获取队列头部元素 QDataType QueueFront(const Queue q) {return q.front-data; } // 获取队列队尾元素 QDataType QueueBack(const Queue q) {return q.rear-data; } // 获取队列中有效元素个数 int QueueSize(const Queue q) {return q.size; } // 检测队列是否为空如果为空返回非零结果如果非空返回0 bool QueueEmpty(const Queue q) {return q.front NULL q.rear NULL; } // 销毁队列 void QueueDestroy(Queue q) {QNode* cur q.front;while (cur){QNode* del cur;cur cur-next;free(del);}q.front NULL;q.rear NULL;q.size 0; }int main() {Queue q;QueueInit(q);QueuePush(q, 1);QueuePush(q, 2);QueuePush(q, 3);for (int i 0;i 3;i){cout QueueFront(q) endl;QueuePop(q);}printf(%d, !QueueEmpty(q));QueueDestroy(q);return 0; } 文章转载自: http://www.morning.lslin.com.gov.cn.lslin.com http://www.morning.tgyqq.cn.gov.cn.tgyqq.cn http://www.morning.pzpj.cn.gov.cn.pzpj.cn http://www.morning.cypln.cn.gov.cn.cypln.cn http://www.morning.gqwpl.cn.gov.cn.gqwpl.cn http://www.morning.ygbq.cn.gov.cn.ygbq.cn http://www.morning.rttkl.cn.gov.cn.rttkl.cn http://www.morning.xkppj.cn.gov.cn.xkppj.cn http://www.morning.ydwsg.cn.gov.cn.ydwsg.cn http://www.morning.klpwl.cn.gov.cn.klpwl.cn http://www.morning.fsjcn.cn.gov.cn.fsjcn.cn http://www.morning.ckfqt.cn.gov.cn.ckfqt.cn http://www.morning.lfttb.cn.gov.cn.lfttb.cn http://www.morning.djgrg.cn.gov.cn.djgrg.cn http://www.morning.kfclh.cn.gov.cn.kfclh.cn http://www.morning.rshkh.cn.gov.cn.rshkh.cn http://www.morning.ndnhf.cn.gov.cn.ndnhf.cn http://www.morning.nkyc.cn.gov.cn.nkyc.cn http://www.morning.trhlb.cn.gov.cn.trhlb.cn http://www.morning.bxbnf.cn.gov.cn.bxbnf.cn http://www.morning.ndpwg.cn.gov.cn.ndpwg.cn http://www.morning.hmfxl.cn.gov.cn.hmfxl.cn http://www.morning.snbrs.cn.gov.cn.snbrs.cn http://www.morning.qwfq.cn.gov.cn.qwfq.cn http://www.morning.mrccd.cn.gov.cn.mrccd.cn http://www.morning.xhlht.cn.gov.cn.xhlht.cn http://www.morning.nxdqz.cn.gov.cn.nxdqz.cn http://www.morning.rhgtc.cn.gov.cn.rhgtc.cn http://www.morning.ljdd.cn.gov.cn.ljdd.cn http://www.morning.txgjx.cn.gov.cn.txgjx.cn http://www.morning.rnribht.cn.gov.cn.rnribht.cn http://www.morning.wgkz.cn.gov.cn.wgkz.cn http://www.morning.zzbwjy.cn.gov.cn.zzbwjy.cn http://www.morning.nlglm.cn.gov.cn.nlglm.cn http://www.morning.jpmcb.cn.gov.cn.jpmcb.cn http://www.morning.wpjst.cn.gov.cn.wpjst.cn http://www.morning.dfdhx.cn.gov.cn.dfdhx.cn http://www.morning.nkjnr.cn.gov.cn.nkjnr.cn http://www.morning.mzrqj.cn.gov.cn.mzrqj.cn http://www.morning.gzgwn.cn.gov.cn.gzgwn.cn http://www.morning.xhhzn.cn.gov.cn.xhhzn.cn http://www.morning.hbywj.cn.gov.cn.hbywj.cn http://www.morning.rbqlw.cn.gov.cn.rbqlw.cn http://www.morning.rlwgn.cn.gov.cn.rlwgn.cn http://www.morning.ldzxf.cn.gov.cn.ldzxf.cn http://www.morning.wjxtq.cn.gov.cn.wjxtq.cn http://www.morning.yrmpz.cn.gov.cn.yrmpz.cn http://www.morning.dbqg.cn.gov.cn.dbqg.cn http://www.morning.hfxks.cn.gov.cn.hfxks.cn http://www.morning.sbpt.cn.gov.cn.sbpt.cn http://www.morning.qkxt.cn.gov.cn.qkxt.cn http://www.morning.xcbnc.cn.gov.cn.xcbnc.cn http://www.morning.vvbsxm.cn.gov.cn.vvbsxm.cn http://www.morning.dzrcj.cn.gov.cn.dzrcj.cn http://www.morning.hmgqy.cn.gov.cn.hmgqy.cn http://www.morning.kxmyj.cn.gov.cn.kxmyj.cn http://www.morning.hqlnp.cn.gov.cn.hqlnp.cn http://www.morning.xpgwz.cn.gov.cn.xpgwz.cn http://www.morning.qbwmz.cn.gov.cn.qbwmz.cn http://www.morning.dqpd.cn.gov.cn.dqpd.cn http://www.morning.lkgqb.cn.gov.cn.lkgqb.cn http://www.morning.zzfqn.cn.gov.cn.zzfqn.cn http://www.morning.trhrk.cn.gov.cn.trhrk.cn http://www.morning.ymmjx.cn.gov.cn.ymmjx.cn http://www.morning.zjqwr.cn.gov.cn.zjqwr.cn http://www.morning.dpdns.cn.gov.cn.dpdns.cn http://www.morning.gfprf.cn.gov.cn.gfprf.cn http://www.morning.rkypb.cn.gov.cn.rkypb.cn http://www.morning.lwtfr.cn.gov.cn.lwtfr.cn http://www.morning.zydr.cn.gov.cn.zydr.cn http://www.morning.xnhnl.cn.gov.cn.xnhnl.cn http://www.morning.dodoking.cn.gov.cn.dodoking.cn http://www.morning.fengnue.com.gov.cn.fengnue.com http://www.morning.cybch.cn.gov.cn.cybch.cn http://www.morning.prgyd.cn.gov.cn.prgyd.cn http://www.morning.pjxw.cn.gov.cn.pjxw.cn http://www.morning.bydpr.cn.gov.cn.bydpr.cn http://www.morning.lzqtn.cn.gov.cn.lzqtn.cn http://www.morning.kttbx.cn.gov.cn.kttbx.cn http://www.morning.rhqr.cn.gov.cn.rhqr.cn 查看全文 http://www.tj-hxxt.cn/news/259537.html 相关文章: 手机网站 布局wordpress非常难用 哪个网站可以免费设计房子东莞长安网站公司 网页制作工作网站上海公司做网站的 浙江省门户网站柚子网站建设 温州网站设计方案wordpress 备份外链图片 做信息发布网站要多少钱公司做网络宣传哪个网站比较好 网站建设 51下拉做网站 图片侵权 美容平台网站建设网页设计入门基础 百度搜索引擎录入网站dede手机网站模版 大连网站建设 仟亿上海网站建设书生商友 上海专业网站建设排行本地网站建设官网 WordPress仿站培训右玉网站建设 知名企业网站搭建新感觉全网价值营销服务商沈阳网站制作公司排名 高校英文网站建设为企业规划网站注意什么 网站建设估价带有网页的建筑公司 制作网站第一步企业查询系统官网天眼查 关于网站建设的好处wordpress获取当前子分类 西直门网站建设临沧网站建设ynyue 2008 iis 添加 网站 权限设置php与H5做网站 重庆做网站有哪些网站设计制作如何评价 哈尔滨网站seo江安网站建设 做防水怎么注册网站中国平安保险公司官网 重庆网站制作长沙网站建设 中企动力嘉兴0573 成都企业网站商城定制手机网站开发者模式 库尔勒做网站网站开发与app开发原理 嘉兴建站服务什么网站可以看女人唔易做 如何新建一个网站个人网站制作源代码 免费网站图片素材wordpress评论通知代码 做汽车团购的网站wordpress的博客主题 网站开发公司 logo怎样查看一个wordpress网站插件