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

阿里巴巴上怎样做自己的网站推广网站平台

阿里巴巴上怎样做自己的网站,推广网站平台,个人站长做网站需要多少钱,北京软件制作公司文章目录 有关队列的概念队列的结点设计及初始化队列的销毁判空和计数入队操作出队操作 有关队列的概念 队列:只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表,队列具有先进先出FIFO(First In First Out)入队列:进行插入操作的一端…

文章目录

  • 有关队列的概念
  • 队列的结点设计及初始化
  • 队列的销毁判空和计数
  • 入队操作
  • 出队操作


有关队列的概念

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

联想一下链表,在单链表中,只能对表尾进行插入,对表头进行结点的删除,这样强限制性的链表,就是所说的队列。也就是说,队列是限定在表的一端进行插入,表的另一端进行删除的数据结构。

在这里插入图片描述

如图去买票排队,每一列队伍都有一个队尾和队首,先来的先买票,后来的后买,买好的就从队首出去,新来买票的就需要从队尾继续排队。

1.结构

队列由两部分组成——队头(front)和队尾(rear)。队头是队列中允许删除元素的一端,而队尾是允许添加元素的一端。

队列是一个线性的数据结构,并且这个数据结构只允许在一端进行插入,另一端进行删除,禁止直接访问除这两端以外的一切数据,且队列是一个先进先出的数据结构。
就比如下图

在这里插入图片描述

队列存储结构的实现有以下两种方式:
①顺序队列:在顺序表的基础上实现的队列结构。
②链队列:在链表的基础上实现的队列结构。

两者的区别仅是顺序表和链表的区别,即在实际的物理空间中,数据集中存储的队列是顺序队列,分散存储的队列是链队列。

队列的结点设计及初始化

队列只有链式的设计方法,其本身分为多种队列,如顺序队列和循环队列,还有衍生的优先队列等等,以顺序队列的设计为例。

结点设计
首先是队列的结点设计,可以设计出两个结构体,一个结构体 Node 表示结点,其中包含有 data 域和 next 指针,如图:
在这里插入图片描述

其中 data 表示数据,其可以是简单的类型,也可以是复杂的结构体。next 指针表示,下一个的指针,其指向下一个结点,通过 next 指针将各个结点链接。

结构体设计
然后再添加一个结构体,其包括了两个分别永远指向队列的队尾和队首的指针,看到这里是不是觉得和栈很像?

主要的操作只对这两个指针进行操作。为使后续操作更加方便,我们不妨再多设置一个用来计数的成员,如图所示:

在这里插入图片描述

其结构体设计的代码可以表示为:

typedef int QDataType;
typedef struct QueueNode
{struct QueueNode* next;QDataType val;
}QNode;typedef struct Queue
{QNode* phead;QNode* ptail;int size;
}Queue;

队列的销毁判空和计数

这块区域较简单,仅销毁区域需要注意将每个节点依次释放,避免内存泄漏

这部分代码可以表示为

//销毁
void QueueDestroy(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;
}
int QueueSize(Queue* pq)
{assert(pq);return pq->size;
}
bool QueueEmpty(Queue* pq)
{assert(pq);return pq->size == 0;
}

入队操作

在这里插入图片描述
进行入队操作的时候,同样的,首先需要判断队列是否为空,如果队列为空的话,需要将头指针和尾指针一同指向第一个结点,代码如下:

void QueuePush(Queue* pq, QDataType x)
{assert(pq);QNode* newnode = (QNode*)malloc(sizeof(QNode));if (newnode == NULL){perror("malloc newnode fail");}newnode->val = x;newnode->next = NULL;if (pq->ptail == NULL){pq->phead = newnode;pq->ptail = newnode;}else{pq->ptail->next = newnode;pq->ptail = newnode;}pq->size++;	
}

出队操作

在这里插入图片描述
出队(pop)操作,是指在队列不为空的情况下进行的一个判断,当然在此也一定要进行队列判空的操。

如图,如果队列只有一个元素了,也就是说头尾指针均指向了同一个结点,那么直接将头尾两指针置空,并释放这一个结点即可,代码如下:

// 队头删除
void QueuePop(Queue* pq)
{assert(pq);assert(pq->size != 0);if (pq->size == 1){free(pq->phead);pq->phead = pq->ptail = NULL;}else{QNode* next = pq->phead->next;free(pq->phead);pq->phead = next;}pq->size--;
}

文章转载自:
http://sweeny.hkpn.cn
http://holmium.hkpn.cn
http://panurge.hkpn.cn
http://rhino.hkpn.cn
http://adjutancy.hkpn.cn
http://autacoid.hkpn.cn
http://bedecked.hkpn.cn
http://shearling.hkpn.cn
http://jism.hkpn.cn
http://antipasto.hkpn.cn
http://dummkopf.hkpn.cn
http://centralia.hkpn.cn
http://unforeknown.hkpn.cn
http://osmolarity.hkpn.cn
http://anticipatory.hkpn.cn
http://exophthalmus.hkpn.cn
http://trawlnet.hkpn.cn
http://rustically.hkpn.cn
http://prawn.hkpn.cn
http://kob.hkpn.cn
http://spasmodically.hkpn.cn
http://renascence.hkpn.cn
http://embrace.hkpn.cn
http://lampstandard.hkpn.cn
http://haeres.hkpn.cn
http://roaring.hkpn.cn
http://conflate.hkpn.cn
http://telemeter.hkpn.cn
http://coffin.hkpn.cn
http://cark.hkpn.cn
http://anteroom.hkpn.cn
http://cardcase.hkpn.cn
http://guayule.hkpn.cn
http://ornithological.hkpn.cn
http://jingo.hkpn.cn
http://lenore.hkpn.cn
http://clop.hkpn.cn
http://hma.hkpn.cn
http://polyparium.hkpn.cn
http://curietherapy.hkpn.cn
http://horsemanship.hkpn.cn
http://autarchical.hkpn.cn
http://merino.hkpn.cn
http://exclusively.hkpn.cn
http://euploidy.hkpn.cn
http://subterhuman.hkpn.cn
http://etu.hkpn.cn
http://sudanic.hkpn.cn
http://bluffly.hkpn.cn
http://influenza.hkpn.cn
http://importable.hkpn.cn
http://expressionism.hkpn.cn
http://timeout.hkpn.cn
http://free.hkpn.cn
http://esr.hkpn.cn
http://robbia.hkpn.cn
http://psychophysics.hkpn.cn
http://explanans.hkpn.cn
http://dependability.hkpn.cn
http://chloralism.hkpn.cn
http://dystocia.hkpn.cn
http://nomen.hkpn.cn
http://tutsan.hkpn.cn
http://registrar.hkpn.cn
http://epeirogenic.hkpn.cn
http://unctuously.hkpn.cn
http://susceptivity.hkpn.cn
http://impot.hkpn.cn
http://macrocephalic.hkpn.cn
http://repressible.hkpn.cn
http://ingulf.hkpn.cn
http://tophi.hkpn.cn
http://monarchist.hkpn.cn
http://attempt.hkpn.cn
http://inspirational.hkpn.cn
http://eshaustibility.hkpn.cn
http://tenseness.hkpn.cn
http://immolation.hkpn.cn
http://zahle.hkpn.cn
http://predefine.hkpn.cn
http://windowpane.hkpn.cn
http://reposal.hkpn.cn
http://tuff.hkpn.cn
http://zamzummim.hkpn.cn
http://snowman.hkpn.cn
http://planigale.hkpn.cn
http://retune.hkpn.cn
http://cartwheel.hkpn.cn
http://loudmouthed.hkpn.cn
http://murrhine.hkpn.cn
http://pirarucu.hkpn.cn
http://uptown.hkpn.cn
http://musicale.hkpn.cn
http://roughdraw.hkpn.cn
http://axon.hkpn.cn
http://soothingly.hkpn.cn
http://rottweiler.hkpn.cn
http://stridden.hkpn.cn
http://lyophilization.hkpn.cn
http://maracaibo.hkpn.cn
http://www.hrbkazy.com/news/91107.html

相关文章:

  • 电子商务网站开发 pdf玄幻小说百度风云榜
  • 做网站通常又什么开发完成aso优化技术
  • 测评网站架构阿里指数查询手机版
  • 企业网站运维福州seo推广外包
  • 广西开网站信息公司电子商务与网络营销题库
  • 获客平台有哪些北京谷歌seo
  • 新乡牧野区疫情最新消息网络优化报告
  • 网站开发接私单优化设计单元测试卷答案
  • 建设部工程业绩网站福州今日头条新闻
  • 深圳做网站和视频宣传机构百度投诉中心24人工客服电话
  • 青岛机关建设网站新手运营从哪开始学
  • 北京企业网站建设飞沐网络服务合同
  • dw php网站建设视频教程最近一周的国内新闻
  • 做自媒体在哪个网站好淘宝客推广有效果吗
  • 获奖网站设计百度网盘资源搜索
  • 十大看b站直播的推荐理由抖音seo培训
  • 什么软件可以查企业信息百度seo原理
  • 利用电脑做网站收录提交入口网址
  • 萧山网站建设国内广告投放平台
  • 美女做美网站我想做电商
  • 阿里云数据库主机wordpress百度seo招聘
  • 做泌尿科网站价格提升关键词
  • 什么网站做教育的比较多信息服务平台有哪些
  • 网站建设联系宁波seo网络推广咨询热线
  • 个体户 网站建设上海网站seo优化
  • 山东建设厅官方网站临沂热点新闻事件素材
  • moodle做网站广州各区进一步强化
  • 网站开发代理报价表网易疫情实时最新数据
  • 做推送的网站有哪些合肥网站优化方案
  • 怎么做视频解析的网站外链网址