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

做网站所需要的代码网站上文章分享的代码怎么做

做网站所需要的代码,网站上文章分享的代码怎么做,dedecms5.7装饰公司网站模板,泸州市住房与城乡建设局网站目录 1.队列的概念及结构 2.队列的实现 2.1队列结构定义 2.2队列的初始化及销毁 2.3数据入队 2.4数据出队 2.5访问队头数据 2.6访问队尾数据 2.6判断队列是否为空 2.7求队列的大小 2.7打印队列 1.队列的概念及结构 队列#xff1a;只允许在一端进行插入数据操作只允许在一端进行插入数据操作另一端进行删除数据操作的特殊线性表 队列中先进先出FIFOFirst In First Out 入队列进行插入操作的一端称为队尾 出队列进行删除操作的一端称为队头 2.队列的实现 队列结构可以使用数组和链表结构实现但一般采用的是链表因为对于数组结构队头出数据的效率较低 2.1队列结构定义  使用链表实现队列队列中的每个元素都是节点的形式所以需要定义节点的结构 对于队列其具有队尾入数据队头出数据的特性所以其结构定义需要两个指针分别指向队头和队尾 typedef int QDataType; typedef struct QueueNode {struct QueueNode* next;QDataType data; }QNode;typedef struct Queue {QNode* head;QNode* tail; }Queue; 2.2队列的初始化及销毁 初始化即队列为空队列队头指针和队尾指针都指向空 销毁队列即释放队列中所有节点的空间队头指针和队尾指针重新指向空 //队列初始化 void QueueInit(Queue* pq) {assert(pq);pq-head pq-tail NULL; } //队列销毁 void QueueDestroy(Queue* pq) {assert(pq);QNode* cur pq-head;while (cur){QNode* del cur;cur cur-next;free(del);}pq-head pq-tail NULL; }2.3数据入队 队列结构中数据入队从队尾入需要考虑空队列和非空队列两种情况 1️⃣空队列 2️⃣非空队列  空队列和非空队列不同的是空队列插入数据时需要更新队头指针 //数据入队 void QueuePush(Queue* pq, QDataType x) {assert(pq);QNode* newnode (QNode*)malloc(sizeof(QNode));if (newnode NULL){perror(malloc fail);exit(-1);}else{newnode-data x;newnode-next NULL;}//空队列时插入if (pq-tail NULL){pq-head pq-tail newnode;}//非空队列时插入else{pq-tail-next newnode;//链接新元素pq-tail newnode;//更新队尾} }2.4数据出队 队列结构中数据出队从队头出对于空队列出队操作非法 出队操作后需要更新队头指针并释放已出队节点的空间 特殊情况队列中只有一个节点 //数据出队 void QueuePop(Queue* pq) {assert(pq);//空队列不能进行出队操作assert(!QueueEmpty(pq));//队列中只有一个元素if (pq-head-next NULL){free(pq-head);pq-head pq-tail NULL;}else{QNode* del pq-head;pq-head pq-head-next;free(del);del NULL;} }2.5访问队头数据 队头数据的访问操作在队列为空时非法所以需要先断言非空链表才可以进行队头数据的访问操作通过队头指针访问即可 //访问队头数据 QDataType QueueFront(Queue* pq) {assert(pq);assert(!QueueEmpty(pq));return pq-head-data;}2.6访问队尾数据 队尾数据的访问操作在队列为空时非法所以需要先断言非空链表才可以进行队尾数据的访问操作通过队尾指针访问即可 //访问队尾数据 QDataType QueueBack(Queue* pq) {assert(pq);assert(!QueueEmpty(pq));return pq-tail-data; }2.6判断队列是否为空 队列为空则队头指针和队尾指针都指向空可以使用if-else语句进行返回 也可以参考以下代码直接返回pq-head NULL pq-tail NULL只有当pq-head和pq-tail同时为NULL是才返回真即队列为空 Note 判空函数的返回类型为bool但是C语言标准中没有bool类型所以需要我们自己定义 #define bool int //判断队列是否为空 bool QueueEmpty(Queue* pq) {assert(pq);/*if (pq-tail pq-head NULL){return true;}else{return false;}*/return pq-head NULL pq-tail NULL; }2.7求队列的大小 求队列的大小遍历统计节点个数并返回即可 //求队列的大小 int QueueSize(Queue* pq) {assert(pq);int size 0;QNode* cur pq-head;while (cur){size;cur cur-next;}return size; } 2.7打印队列  为了便于观察入队与出队操作可以编写一个打印函数便于调试 //打印队列 void QueuePrint(Queue* pq) {assert(pq);QNode* cur pq-head;while (cur){printf(%d , cur-data);cur cur-next;}printf(\n); }
http://www.huolong8.cn/news/281669/

相关文章:

  • 网站非法收录用户信息开发公司年终工作总结ppt
  • 网站开发公司哪个好景区电子商务网站建设
  • 网站说明怎么写网站建设具体要求
  • seo网站沙盒期内江 网站建设
  • 网站做百度推广能获取流量吗袜子技术支持北京网站建设
  • 建站公司都有哪些关于协会网站建设的建议
  • 微商城手机网站模板网站建设飠金手指科杰十五
  • 常州高端网站建设公司哪家好wordpress 插件 喜欢
  • 安宁网站建设与制作wordpress模板好用吗
  • 自己做菠菜网站服务外包下的网站开发
  • 清远市清城区网站建设公司沈阳做网站的设计公司哪家好
  • 顺丰物流网站建设策划书怎样制作网页超链接
  • 大学网站建设技术方案西乡移动网站建设
  • 南宁网站建站公司百度抓取网站频率
  • 电商系统网站开发seo sem是什么
  • 网站主要内容建设网站困难的解决办法
  • 婚纱摄影网站图片素材网有哪些
  • 苏州制作网站的公司简介建购物的网站需要多少钱
  • 地方新闻门户网站源码注册一个公司需要什么条件
  • 网站制作厂家有哪些关于电商运营的知识点
  • 上海专门做培训的网站柳江企业网站建设公司
  • 开发公司空置房物业费会计科目关键词优化seo外包
  • 贸易公司 网站 扶持什么网站比谷歌还好
  • 宁波网站建设公司网络推广手机wap网站模板下载
  • 承德建设银行网站全国最新产品代理商
  • 网站前台和后台设计湛江建设网站
  • 自己的网站怎么赚钱高端网站设计价格
  • 一流的赣州网站建设wordpress 登录入口
  • 建设银行网站怎么看交易记录汽车之家官网网页版入口
  • 网站分页导航流行的网站开发技术