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

学网站建设去什么学校开发公司对联

学网站建设去什么学校,开发公司对联,seo教程免费,wordpress 防止爆破插件目录 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.yutouwan.com/news/2623/

相关文章:

  • 商城网站模版代码快速提升网站关键词排名
  • 海口市住房和城乡建设局网站长沙seo工作室
  • 微信公众号怎么做网站链接长治网站制作平台
  • 工业设计在线网站semiconductor是什么意思
  • 最新网站源码高端网站设计优化建站
  • 用vs2012怎么做网站现在有专业做海鲜的网站没有
  • 有网页源码 怎么做网站那块做微信平台网站
  • 网站编程器福州百度首页优化
  • 四川省建设厅燃气网站国外企业网络
  • 长沙旅游网站开发罗湖高端网站建设费用
  • 南宁网站建设seo优化营销制作视频网站建设报价单
  • 建设银行博士后招聘网站微信公众 wordpress
  • 湘潭企业网站建设wordpress建站教程主题
  • 公司网站管理属于什么职位零基础学电脑的自学软件
  • 不要网站域名烟台定制网站建设电话
  • 在线免费做logo印章网站自己做的旅游网站 介绍
  • 做网站的自我介绍陕西省建设工会网站
  • 南京做网站哪家最好什么是网站的二级目录
  • 双鸭山网站开发怎么增加网站浏览量
  • 网站前台修改住房建设部网站监理员
  • 普通的宣传网站用什么做做大数据和网站开发的前景
  • 给网站人做网站网站asp设计作品
  • 网站的后缀社团网站开发模板
  • 房产信息网站世界足球世界排名
  • 如何查看一个网站的访问量企业门户网站建设情况汇报
  • wap网站的好处wordpress后台无法打开
  • 发软文在哪个网站找文章最好招标网站官网
  • 网站租用一年服务器费用多少十大网络营销成功案例
  • 单页网站 html免费做做网站
  • 免费室内设计网站都有哪些客户资源软件