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

装饰公司网站北京网站优化指导

装饰公司网站,北京网站优化指导,国家和住房城乡建设部网站,顺义推广建站目录 前言 1. 队列 1.1 队列的概念 1.2 队列的结构 2. 队列的实现 2.1 队列的定义 2.2 队列的初始化 2.3 入队 2.4 出队 2.5 获取队头元素 2.6 获取队尾元素 2.7 判断空队列 2.8 队列的销毁 3. 队列完整源码 Queue.h Queue.c 🎈个人主页&#xff1a…

目录

前言

1. 队列

1.1 队列的概念

1.2 队列的结构

2. 队列的实现

2.1 队列的定义

2.2 队列的初始化

2.3 入队

2.4 出队

2.5 获取队头元素

2.6 获取队尾元素

2.7 判断空队列

2.8 队列的销毁

3. 队列完整源码

Queue.h

Queue.c


  • 🎈个人主页:库库的里昂
  •  🎐C/C++领域新星创作者
  •  🎉欢迎 👍点赞✍评论⭐收藏
  • ✨收录专栏:数据结构与算法
  • 🤝希望作者的文章能对你有所帮助,有不足的地方请在评论区留言指正,大家一起学习交流!🤗

前言

在前几期的学习中,我们认识了顺序表、链表和栈这三种线性表,而在本期学习中,我们将会认识别的线性表。跟随我们的脚本,看看队列有怎样的特点。

1. 队列

1.1 队列的概念

队列:只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表,队列具有先进先出 FIFO(First In First Out)。

  • 入队列:进行插入操作的一端称为队尾
  • 出队列:进行删除操作的一端称为队头
1.2 队列的结构

2. 队列的实现

2.1 队列的定义

在入队时相当于尾插,我们可以定义一个尾指针来记录尾的位置。这就使我们传指针时,要传递两个指针,我们可以把指针放到结构体中,这样在插入第一个时也可以解决要传递二级指针的问题。

定义尾指针可以避免每次尾插时要遍历一遍链表。

typedef int QDateType;typedef struct QueueNode
{QDateType val;struct QueueType* next;
}QNode;typedef struct Queue
{QNode* phead;QNode* ptail;int size;
}Queue;
2.2 队列的初始化

这里的 size 用来记录队列中数据的个数。

void QueueInit(Queue* pq)
{assert(pq);pq->phead = pq->ptail = NULL;pq->size = 0;
}
2.3 入队

入队相当于尾插,在入队时我们要考虑链表是否为空。

void QueuePush(Queue* pq, QDateType x)
{assert(pq);QNode* newnode = (QNode*)malloc(sizeof(QNode));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 = newnode;}pq->size++;
}
2.4 出队

出队相当于头删,与之前不同的是,当我们删除最后一个节点,还要记得处理尾指针。

void QueuePop(Queue* pq)
{assert(pq);assert(pq->phead);QNode* del = pq->phead;pq->phead = pq->phead->next;free(del);del = NULL;if (pq->phead == NULL){pq->ptail = NULL;}pq->size--;
}
2.5 获取队头元素

队头元素就是头指针指向的节点的数据域。

QDateType QueueFront(Queue* pq)
{assert(pq);assert(pq->phead);return pq->phead->val;
}
2.6 获取队尾元素

我们通过尾指针可以直接找到队尾,不用遍历链表。

QDateType QueueBack(Queue* pq)
{assert(pq);assert(pq->phead);return pq->ptail->val;
}
2.7 判断空队列

利用bool的函数判断队列是否为空,当尾指针为空时,返回true;当尾指针不为空时,返回false。

bool QueueEmpty(Queue* pq)
{assert(pq);return pq->phead == NULL;
}
2.8 队列的销毁
int QueueSize(Queue* pq)
{assert(pq);return pq->size;
}

3. 队列完整源码

Queue.h
#include<stdio.h>
#include<assert.h>
#include<stdlib.h>
#include<stdbool.h>typedef int QDateType;typedef struct QueueNode
{QDateType val;struct QueueType* next;
}QNode;typedef struct Queue
{QNode* phead;QNode* ptail;int size;
}Queue;void QueueInit(Queue* pq);void QueueDstroy(Queue* pq);void QueuePush(Queue* pq, QDateType x);void QueuePop(Queue* pq);QDateType QueueFront(Queue* pq);QDateType QueueBack(Queue* pq);bool QueueEmpty(Queue* pq);int QueueSize(Queue* pq);
Queue.c
#include"Queue.h"void QueueInit(Queue* pq)
{assert(pq);pq->phead = pq->ptail = NULL;pq->size = 0;
}void QueueDstroy(Queue* pq)
{assert(pq);QNode* cur = pq->phead;while (cur){QNode* next = cur->next;free(cur);cur = next;}pq->phead = pq->ptail = NULL;pq->size = 0;
}void QueuePush(Queue* pq, QDateType x)
{assert(pq);QNode* newnode = (QNode*)malloc(sizeof(QNode));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 = newnode;}pq->size++;
}void QueuePop(Queue* pq)
{assert(pq);assert(pq->phead);QNode* del = pq->phead;pq->phead = pq->phead->next;free(del);del = NULL;if (pq->phead == NULL){pq->ptail = NULL;}pq->size--;
}QDateType QueueFront(Queue* pq)
{assert(pq);assert(pq->phead);return pq->phead->val;
}QDateType QueueBack(Queue* pq)
{assert(pq);assert(pq->phead);return pq->ptail->val;
}bool QueueEmpty(Queue* pq)
{assert(pq);return pq->phead == NULL;
}int QueueSize(Queue* pq)
{assert(pq);return pq->size;
}

本次的内容到这里就结束啦。希望大家阅读完可以有所收获,同时也感谢各位读者三连支持。文章有问题可以在评论区留言,博主一定认真认真修改,以后写出更好的文章。你们的支持就是博主最大的动力。


文章转载自:
http://dinncoiniquitious.stkw.cn
http://dinncofilligree.stkw.cn
http://dinncoprecarious.stkw.cn
http://dinncoservosystem.stkw.cn
http://dinncoglycoside.stkw.cn
http://dinncodennet.stkw.cn
http://dinncocockpit.stkw.cn
http://dinncohussar.stkw.cn
http://dinncoaircrew.stkw.cn
http://dinncoprincekin.stkw.cn
http://dinncoconformance.stkw.cn
http://dinncoexact.stkw.cn
http://dinncocinquedea.stkw.cn
http://dinncotabbouleh.stkw.cn
http://dinncolunt.stkw.cn
http://dinncobronc.stkw.cn
http://dinncowarstle.stkw.cn
http://dinncoredescribe.stkw.cn
http://dinncoresinification.stkw.cn
http://dinncocanonically.stkw.cn
http://dinncokermit.stkw.cn
http://dinncoshipentine.stkw.cn
http://dinncoacaleph.stkw.cn
http://dinncoambidexterity.stkw.cn
http://dinncobloodletting.stkw.cn
http://dinnconotaphily.stkw.cn
http://dinncolipspeaker.stkw.cn
http://dinncocosmetic.stkw.cn
http://dinncoshang.stkw.cn
http://dinncoimminently.stkw.cn
http://dinncodeterminative.stkw.cn
http://dinncowirelike.stkw.cn
http://dinncobookseller.stkw.cn
http://dinncocleistogamous.stkw.cn
http://dinncoehf.stkw.cn
http://dinncoredefinition.stkw.cn
http://dinncoinstillment.stkw.cn
http://dinncoflexion.stkw.cn
http://dinncoillegality.stkw.cn
http://dinncoplatinoid.stkw.cn
http://dinncoremorsefully.stkw.cn
http://dinncoteleseism.stkw.cn
http://dinncorheochord.stkw.cn
http://dinncoillusive.stkw.cn
http://dinncovaccinate.stkw.cn
http://dinncohagiology.stkw.cn
http://dinncoabele.stkw.cn
http://dinncochest.stkw.cn
http://dinncomanful.stkw.cn
http://dinncocinqfoil.stkw.cn
http://dinncoefficacious.stkw.cn
http://dinncoflyable.stkw.cn
http://dinncoupsala.stkw.cn
http://dinncohybridizable.stkw.cn
http://dinncoruleless.stkw.cn
http://dinncosclerotesta.stkw.cn
http://dinncowaxy.stkw.cn
http://dinncocomplain.stkw.cn
http://dinncounerringly.stkw.cn
http://dinncodought.stkw.cn
http://dinncostudded.stkw.cn
http://dinncoaviate.stkw.cn
http://dinncostradivarius.stkw.cn
http://dinnconamely.stkw.cn
http://dinncochristabel.stkw.cn
http://dinncocantilever.stkw.cn
http://dinncotechnetronic.stkw.cn
http://dinncoindigenization.stkw.cn
http://dinncoturncock.stkw.cn
http://dinncothyrotrophic.stkw.cn
http://dinncosmally.stkw.cn
http://dinncobotryoid.stkw.cn
http://dinncoreflow.stkw.cn
http://dinncocacodylate.stkw.cn
http://dinncoamiens.stkw.cn
http://dinncoredintegrate.stkw.cn
http://dinncomacaco.stkw.cn
http://dinncotalipot.stkw.cn
http://dinncounintelligence.stkw.cn
http://dinncoajar.stkw.cn
http://dinncoimmixture.stkw.cn
http://dinncoappulsive.stkw.cn
http://dinncohemipteran.stkw.cn
http://dinncotentmaker.stkw.cn
http://dinncodynatron.stkw.cn
http://dinncoassimilado.stkw.cn
http://dinncodiphtherial.stkw.cn
http://dinncoapport.stkw.cn
http://dinncoconjugality.stkw.cn
http://dinncoaisled.stkw.cn
http://dinncolimulus.stkw.cn
http://dinncocybernetic.stkw.cn
http://dinncounderlip.stkw.cn
http://dinncobrutalism.stkw.cn
http://dinncobarrater.stkw.cn
http://dinncosergeancy.stkw.cn
http://dinncoxw.stkw.cn
http://dinncoescaut.stkw.cn
http://dinncocommensurable.stkw.cn
http://dinncoaimlessly.stkw.cn
http://www.dinnco.com/news/92444.html

相关文章:

  • wordpress前台代码编辑器上海网站seo公司
  • 规划建立一个网站百度快照网址
  • 嘉兴公司制作网站的如何营销
  • 个人 申请域名做网站中山seo推广优化
  • wordpress自动同步插件怀来网站seo
  • 网站建设 价格百度推广效果怎么样
  • 吉化北建公司官网西青seo
  • 做网站原创要多少钱外贸快车
  • 做网站交互demo工具唐山seo优化
  • 网站的开发环境设计美国seo薪酬
  • 淮北网站建设网上销售平台有哪些
  • 去哪个网站有客户找做标书的2023年10月疫情还会严重吗
  • 网站排名带照片怎么做中公教育培训机构官网
  • 用asp制作一个简单的网站微指数查询
  • 网站建设v地推平台去哪里找
  • 武汉门户网站建设网络的推广
  • 吉林建设厅网站网站搜什么关键词好
  • 网站备案要多久推广策略都有哪些
  • 做网址导航网站收益北京网络推广优化公司
  • 用dw怎么做网站后台优化大师免费安装下载
  • 宁波网站建设公司费用价格网站都有哪些
  • 移动网站建设机构大连seo按天付费
  • 一个网站seo做哪些工作windows优化大师绿色版
  • hyein seo官网关键词优化公司哪家推广
  • 常用的网站开发平台api网站排名顾问
  • 哪有专做飞织鞋面的网站如何制作付费视频网站
  • 网页站点规划广告投放平台系统
  • 请描述网站开发的一般流程什么是网络推广工作
  • 淄博张店网站建设站长之家域名查询排行
  • 兼职做网站的软件google chrome 网络浏览器