当前位置: 首页 > news >正文

东直门小学的网站建设网站建设方案书网络部署方案

东直门小学的网站建设,网站建设方案书网络部署方案,百度公司销售卖什么的,百度站长平台开绿色收录通道加快网站收录大家好#xff0c;我是苏貝#xff0c;本篇博客带大家了解队列#xff0c;如果你觉得我写的还不错的话#xff0c;可以给我一个赞#x1f44d;吗#xff0c;感谢❤️ 目录 一. 队列的概念及结构二. 队列的实现队列的结构体初始化销毁队尾插入队头删除显示第一个节点的值… 大家好我是苏貝本篇博客带大家了解队列如果你觉得我写的还不错的话可以给我一个赞吗感谢❤️ 目录 一. 队列的概念及结构二. 队列的实现队列的结构体初始化销毁队尾插入队头删除显示第一个节点的值显示最后一个节点的值是否为空队列的大小 三. 模块化代码实现Queue.hQueue.cTest.c结果演示 一. 队列的概念及结构 队列只允许在一端进行插入数据操作在另一端进行删除数据操作的特殊线性表队列具有先进先出的性质。FIFO(First In First Out) 入队列进行插入操作的一端称为队尾 出队列进行删除操作的一端称为队头 二. 队列的实现 1 队列的结构体 因为数组在头删的时候不方便所以我们采用单链表来实现。 typedef int QDataType;typedef struct QueneNode {QDataType val;struct QueneNode* next; }QNode;typedef struct Quene {QNode* phead;//指向第一个节点QNode* ptail;//指向最后一个节点int size; }Quene;2 初始化 因为我们要对队列进行初始化所以实参要传Queue类型变量的地址用一级指针来接收。因为实参Queue类型变量的地址不可能为NULL所以对它断言下面的接口同理。 void QueneInit(Quene* pq) {assert(pq);pq-phead NULL;pq-ptail NULL;pq-size 0; }3 销毁 void QueneDestroy(Quene* pq) {assert(pq);QNode* cur pq-phead;while (cur){QNode* next cur-next;free(cur);cur next;}pq-phead NULL;pq-ptail NULL;pq-size 0; }4 队尾插入 插入前要创建一个新节点插入时还要判断队列是否为空若为空则让pq-phead pq-ptail newnode。若不为空则只让pq-ptail -next newnode再pq-ptailpq-ptail-next 注意不要忘记pq-size void QuenePush(Quene* pq, QDataType x) {assert(pq);//创建一个新节点QNode* newnode (Quene*)malloc(sizeof(Quene));if (newnode NULL){perror(malloc fail);return;}newnode-next NULL;newnode-val x;//插入if (pq-ptail NULL){pq-phead pq-ptail newnode;}else{pq-ptail-next newnode;pq-ptail pq-ptail-next;}pq-size; }5 队头删除 删除时要保证队列里有元素所以对pq-phead断言下面的显示第一个/最后一个节点的值同理 注意当队列里只有一个元素时删除后pq-phead指向NULL没错但是此时pq-ptail是野指针所以也要将pq-ptail置为NULL。不要忘记pq-size- - void QuenePop(Quene* pq) {assert(pq);assert(pq-phead);QNode* next pq-phead-next;free(pq-phead);pq-phead next;if (pq-phead NULL){pq-ptail NULL;}pq-size--; }6 显示第一个节点的值 QDataType QueneFront(Quene* pq) {assert(pq);return pq-phead-val; }7 显示最后一个节点的值 QDataType QueneBack(Quene* pq) {assert(pq);return pq-ptail-val; }8 是否为空 bool QueneEmpty(Quene* pq) {assert(pq);return pq-phead NULL; }9 队列的大小 int QueneSize(Quene* pq) {assert(pq);return pq-size; }三. 模块化代码实现 Queue.h #includestdio.h #includeassert.h #includestdbool.htypedef int QDataType;typedef struct QueneNode {QDataType val;struct QueneNode* next; }QNode;typedef struct Quene {QNode* phead;QNode* ptail;int size; }Quene;//初始化 void QueneInit(Quene* pq); //销毁 void QueneDestroy(Quene* pq); //队尾插入 void QuenePush(Quene* pq, QDataType x); //队头删除 void QuenePop(Quene* pq); //显示第一个节点的值 QDataType QueneFront(Quene* pq); //显示最后一个节点的值 QDataType QueneBack(Quene* pq); //是否为空 bool QueneEmpty(Quene* pq); //队列大小 int QueneSize(Quene* pq);Queue.c #includeQuene.h//初始化 void QueneInit(Quene* pq) {assert(pq);pq-phead NULL;pq-ptail NULL;pq-size 0; }//销毁 void QueneDestroy(Quene* pq) {assert(pq);QNode* cur pq-phead;while (cur){QNode* next cur-next;free(cur);cur next;}pq-phead NULL;pq-ptail NULL;pq-size 0; }//队尾插入 void QuenePush(Quene* pq, QDataType x) {assert(pq);//创建一个新节点QNode* newnode (Quene*)malloc(sizeof(Quene));if (newnode NULL){perror(malloc fail);return;}newnode-next NULL;newnode-val x;//插入if (pq-ptail NULL){pq-phead pq-ptail newnode;}else{pq-ptail-next newnode;pq-ptail pq-ptail-next;}pq-size; }//队头删除 void QuenePop(Quene* pq) {assert(pq);assert(pq-phead);QNode* next pq-phead-next;free(pq-phead);pq-phead next;if (pq-phead NULL){pq-ptail NULL;}pq-size--; }//显示第一个节点的值 QDataType QueneFront(Quene* pq) {assert(pq);return pq-phead-val; }//显示最后一个节点的值 QDataType QueneBack(Quene* pq) {assert(pq);return pq-ptail-val; }//是否为空 bool QueneEmpty(Quene* pq) {assert(pq);return pq-phead NULL; }//队列大小 int QueneSize(Quene* pq) {assert(pq);return pq-size; }Test.c #includeQuene.hint main() {Quene p;QueneInit(p);QuenePush(p, 1);QuenePush(p, 2);QuenePush(p, 3);QuenePush(p, 4);QuenePush(p, 5);while (!QueneEmpty(p)){printf(%d , QueneFront(p));QuenePop(p);}QueneDestroy(p);return 0; }结果演示 好了那么本篇博客就到此结束了如果你觉得本篇博客对你有些帮助可以给个大大的赞吗感谢看到这里我们下篇博客见❤️
http://www.zqtcl.cn/news/432887/

相关文章:

  • 中国建设银行u盾下载假网站吗wordpress有没有付费
  • 海南哪家公司做网站开发一套管理系统多少钱
  • 做网站建设费用百姓网
  • 西安建设厅网站wpf做网站教程
  • 好的网页网站设计wordpress对外发邮件
  • 湖北网站建设贴吧信用宁波企业网查询
  • 佛山市官网网站建设多少钱网站建设与管理书籍
  • 网站建设佰金手指科杰二八佛山有那几家做网站
  • 网站建设刂搜金手指下拉贰伍wordpress 外链自动nofflow
  • 搭建一个网站多少钱手机软件开发用什么语言
  • 太原专业网站建设杭州网络推广专员
  • 广西专业建网站橙米网站建设
  • 百度做的网站能优化吗html网站系统
  • php素材网站源码免费下载网站维护的内容有哪些
  • 打鱼跟电子游戏网站怎么做佛山微网站开发哪家好
  • 知名的网站建设网站在工信部备案
  • 网站首页的快照更新慢爆wordpress密码
  • dw做网站背景图片设置铺平微博通 wordpress
  • 勉县网站建设电商网站要素
  • 重庆旅游seo整站优化网站制作的一般步骤是什么
  • 网站建设评估体系p2p网站建设框架
  • .net 快速网站开发东莞网站建设公司哪家好
  • 东莞个人网站设计潍坊专业人员继续教育
  • 网站建设如何创业建设招标网官网
  • 公司没有销售网站怎么做业务怎么做微信推送 网站
  • 商城网站模版郴州网页定制
  • 电子商务网站建设步骤海外广告投放渠道
  • 网站用花生壳nas做存储十堰市网站建设
  • 用html5做手机网站抖音平台建站工具
  • 在线课程网站开发的研究意义网站开发需要哪些知识