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

自己做的网站为什么访问不佛山网站优化平台

自己做的网站为什么访问不,佛山网站优化平台,wordpress网站转app插件下载,ajax实现wordpress导航栏前言#xff1a; 本节博客是对基础数据结构队列的一种实现思路的分享#xff0c;有需要借鉴即可。 1.队列的概念 队列#xff1a;只允许在一端进行插入数据操作#xff0c;在另一端进行删除数据操作的特殊线性表#xff0c;队列具有先 进先出FIFO(First In First Out) 入… 前言 本节博客是对基础数据结构队列的一种实现思路的分享有需要借鉴即可。 1.队列的概念 队列只允许在一端进行插入数据操作在另一端进行删除数据操作的特殊线性表队列具有先 进先出FIFO(First In First Out) 入队列进行插入操作的一端称为队尾 出队列进行删除操作的一 端称为队头 与此恰好相反的数据结构是栈的概念详情见博客LINK 2.队列的结构 在写代码之前我们首先要搞清楚几个问题 1.队列依托的底层数据结构是什么为什么 如果用数组来做队列的话有个问题就是需要不停的一个一个的挪动数据。 我们接下来看一下用链表做队列的情况: 所以选择单链表。因为单链表可行且效率较高。 总结一下:用数组实现队列无论怎么进行布局都避免不了挪动数据的问题用链表实现尾插可以作为队尾插入数据头删可以用来出数据。 2.队列的一个整体接口是如何的 3.为什么在队列的效率考虑我采用了一个结构体来存储指针这里指针意思是记录phead的内容与ptail的内容的指针 原因如果不用结构体来存储指针的话那我们每个接口传入都需要传入这两个指针比较麻烦。 3.各种接口的实现 1.初始化与销毁 void QueueInit(Queue* pq) {assert(pq);pq-phead pq-ptail NULL;pq-size 0; }void QueueDestroy(Queue* pq) {assert(pq);QNode* pcur pq-phead;while (pcur){QNode* next pcur-next;//记录free(pcur);//销毁pcur next;//更新}pq-phead pq-ptail NULL;pq-size 0; }int QueueSize(Queue* pq) {assert(pq);return pq-size; } 2.进队列与出队列 这个模块属于队列的重点因而特地强调一下。 在进队列的情况下有两种情况一是没有结点的时候需要移动phead与ptail两个指针。二是有一个或者多个结点的时候只需要移动ptail进行尾插即可。 在出队列的情况下有三种情况一是没有结点的时候不能出队列二是有一个队列的时候需要对ptai和phead两个指针做改动三是有多个结点的时候只需要修改phead进行头删即可。 void QueuePush(Queue* pq, QDataType x)//尾插 {assert(pq);//申请一块堆空间QNode* newnode (QNode*)malloc(sizeof(QNode));if(newnode NULL){perror(malloc fail);exit(1);}//新节点的初始化newnode-val x;newnode-next NULL;//如果是没有结点时候需要插入if (pq-phead NULL){pq-phead pq-ptail newnode;}//至少有一个节点时需要插入尾插else{pq-ptail-next newnode;pq-ptail newnode;}pq-size; }void QueuePop(Queue* pq) {assert(pq);//这里其实有三种不同的情况//1.没有结点这种是不可以删除的//2.一个结点那么就需要phead与ptail都需要调整(容易被坑)//3.多个结点只需要调整phead即可assert(pq-phead ! NULL);if (pq-phead pq-ptail){free(pq-phead);pq-phead pq-ptail NULL;}else{QNode* next pq-phead-next;free(pq-phead);pq-phead next;}pq-size--; }3.取头结点与取尾结点 QDataType QueueFront(Queue* pq) {assert(pq);//没有数据不能取出assert(pq-phead ! NULL);//有数据return pq-phead-val; }QDataType QueueBack(Queue* pq) {assert(pq);//没有数据不能取出assert(pq-phead ! NULL);//有数据return pq-ptail-val; }bool QueueEmpty(Queue* pq) {assert(pq);return pq-phead NULL; }4.全部代码一览 #includeQueue.hvoid QueueInit(Queue* pq) {assert(pq);pq-phead pq-ptail NULL;pq-size 0; }void QueueDestroy(Queue* pq) {assert(pq);QNode* pcur pq-phead;while (pcur){QNode* next pcur-next;//记录free(pcur);//销毁pcur next;//更新}pq-phead pq-ptail NULL;pq-size 0; }int QueueSize(Queue* pq) {assert(pq);return pq-size; }void QueuePush(Queue* pq, QDataType x)//尾插 {assert(pq);//申请一块堆空间QNode* newnode (QNode*)malloc(sizeof(QNode));if(newnode NULL){perror(malloc fail);exit(1);}//新节点的初始化newnode-val x;newnode-next NULL;//如果是没有结点时候需要插入if (pq-phead NULL){pq-phead pq-ptail newnode;}//至少有一个节点时需要插入尾插else{pq-ptail-next newnode;pq-ptail newnode;}pq-size; }void QueuePop(Queue* pq) {assert(pq);//这里其实有三种不同的情况//1.没有结点这种是不可以删除的//2.一个结点那么就需要phead与ptail都需要调整(容易被坑)//3.多个结点只需要调整phead即可assert(pq-phead ! NULL);if (pq-phead pq-ptail){free(pq-phead);pq-phead pq-ptail NULL;}else{QNode* next pq-phead-next;free(pq-phead);pq-phead next;}pq-size--; }QDataType QueueFront(Queue* pq) {assert(pq);//没有数据不能取出assert(pq-phead ! NULL);//有数据return pq-phead-val; }QDataType QueueBack(Queue* pq) {assert(pq);//没有数据不能取出assert(pq-phead ! NULL);//有数据return pq-ptail-val; }bool QueueEmpty(Queue* pq) {assert(pq);return pq-phead NULL; }#pragma once #define _CRT_SECURE_NO_WARNINGS 1 #includestdio.h #includestdbool.h #includestdlib.h #includeassert.h//队列结构-底层单链表实现 typedef int QDataType; typedef struct QueueNode {QDataType val;struct QueueNode* next; }QNode;//两个指针的结构体 typedef struct Queue {QNode* phead;QNode* ptail;int size; }Queue;//实现的各种接口 //初始化与销毁 void QueueInit(Queue* pq); void QueueDestroy(Queue* pq); int QueueSize(Queue* pq); //插入与删除 void QueuePush(Queue* pq, QDataType x); void QueuePop(Queue* pq); //取头结点与取尾结点 QDataType QueueFront(Queue* pq); QDataType QueueBack(Queue* pq); bool QueueEmpty(Queue* pq);#includeQueue.htest1() {Queue q;QueueInit(q);QueuePush(q, 1);QueuePush(q, 2);QueuePush(q, 3);QDataType x QueueFront(q);printf(%d , x);QueuePop(q);x QueueFront(q);printf(%d , x);QueuePop(q);QueuePush(q, 4);QueuePush(q, 5);QueuePush(q, 6);//取出while (QueueSize(q) ! 0){x QueueFront(q);printf(%d , x);QueuePop(q);}}int main() {test1();return 0; } 完。
http://www.hkea.cn/news/14512408/

相关文章:

  • 网站建设需要很强的编程巩义企业网站快速优化多少钱
  • 北京做网站建设价格低重庆市网上房地产官网
  • 网站设计电商运营网站 优化 教程
  • 怎么查询网站备案服务商是哪个滨海建设局官方网站
  • 网站数据不变重新安装wordpress网页二级网站怎么做
  • 做pc端网站案例北京app开发外包
  • 网站的导航页怎么做大于二高端网站建设
  • 建设商城网站公司吗定制床需要多少钱
  • 哪个网站做汽车保养比较好无法进行网站备案
  • 仿制网站软件最新的电商平台
  • 自建本地网站服务器wordpresswordpress小程序怎么发布文章
  • 上海 网站建设公司商务型网站建设
  • 天津建设网站培训扬州又出现一例
  • 自己做的网站如何发布建设网站需要准备哪些内容
  • 如何修改网站内容石家庄市环保局网站建设项目备案系统
  • 北京网站开发公司电话企业网站建设公司公司
  • 冬季什么行业做网站比较多东莞网站建设 光龙
  • 网站备案程序权威发布型舆情回应
  • 电影网站开发源代码购物网站建设与实现
  • 苏州市住房和建设局网站三类人员 网站开发
  • 一个网站做十个二级域名广告去哪个网站做
  • 网站需要审核吗十大高端网站定制设计师
  • 易安卓做网站电子商务网站建设收益举例
  • 公司o2o网站建设怎么到百度做网站
  • 合肥哪里有建站公司wordpress在页面里写文章
  • 网站建设与管理试卷答案外贸建站seo
  • 百度官网网站首页吉安市网站制作
  • 自己做网站下载怎么动画设计实训报告
  • 汕头网站制作推荐家居网站建设总结
  • 常德网站建设渠道品牌策划案范本