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

个人网站成功案例店面怎么做位置定位

个人网站成功案例,店面怎么做位置定位,淄博哪有做网站的,网站做等保是什么意思上篇文章中,对栈的概念及特点进行了解释,并且给出了栈实现的具体代码。本篇文章将给出队列的基本概念及特点。并给出相应的代码。 1. 队列的概念及结构: 在给出队列的概念之前,先给出上篇文章中提到的栈的概念:一种只…

上篇文章中,对栈的概念及特点进行了解释,并且给出了栈实现的具体代码。本篇文章将给出队列的基本概念及特点。并给出相应的代码。

1. 队列的概念及结构:

在给出队列的概念之前,先给出上篇文章中提到的栈的概念:一种只能在表尾进行插入和删除的线性表。

对于队列,与栈相同的一点是,依然只能在表尾插入数据。但是,队列只允许在表头删除数据。

进行插入操作的一端,称之为队尾。将插入数据的操作称之为入队列。

进行删除数据的一段,称之为对头。将删除数据的操作称之为出队列。

队列整体结构可以有下图反应:
2. 队列的代码实现:

2.1 队列结构的定义:

通过结构体定义下放给的队列结构:

typedef int QDataType;
typedef struct QueueNode
{struct QueueNode* next;QDataType data;
}QNode;

在后续的操作中,需要通过向所编写的功能函数中传递两个结构体指针phead,tail来分别表示队头、队尾来达到头删、尾插的目的。例如在进行插入时,插入第一个数据时,pheadtail均指向第一个数据。即:

只有插入的元素数量>1时,pheadtail两个指针才会拉开差距。例如:插入3个元素时,大致效果如下:

所以,在后续操作时,需要改变pheadtail两个指针中的内容。在之前关于单链表的文章中一起学数据结构(3)——万字解析:链表的概念及单链表的实现_起床写代码啦!的博客-CSDN博客提到,当一级指针phead,tail作为形式参数时,函数内部对于形式参数的更改,并不会影响这两个指针中实际保存的内容。解决这个问题的方法, 在之前的文章中曾提到过下面几种:
1. 通过传递关于phead,tail二级指针来达到改变着两个指针中存储内容的目的。

2.在书写函数时,最后直接返回形参。并且在外部创建变量来记录函数的返回值。

本文提供第三种方法,即再额外创建一个结构体来存储phead,tail这两个指针。并且将这个结构体的指针作为形参传递到函数中。即:

typedef struct Queue
{QNode* phead;QNode* tail;int size;
}Que;

如果想更改phead中存储的内容,只需要命名一个结构体指针,例如:Que*ps。通过ps-> phead可以达到目的。

对于上面提出的用结构体封装两个指针的方法,也可以看作关于带头结点的双向循环链表文章一起学数据结构(4)——带头结点的双向循环链表_起床写代码啦!的博客-CSDN博客

中哨兵位头结点的作用。

2.2 队列初始化:

将结构体Que中各个结构体成员初始化,代码如下:

void QueueInit(Que* ps)
{assert(ps);ps->phead = ps->tail = 0;ps->size = 0;
}

2.3 向队列中插入元素:

与通过栈顶向栈中插入元素的思路大致相同,首先需要进行扩容。但是因为在实现栈时,是采用顺序实现。而对于本文的队列则采用链式实现。所以,在栈中开辟空间时,是开辟一部分连续空间。当这部分空间被占满时再开辟。对于链式结构,只需要,在每次插入之前,开辟一个单独的结点即可。具体代码如下:
 

void QueuePush(Que* ps, QDataType x)
{assert(ps);QNode* newnode = (QNode*)malloc(sizeof(QNode));if (newnode == NULL){perror("malloc");exit(-1);}newnode->next = NULL;newnode->data = x;if (ps->tail == NULL){ps->phead = ps->tail = newnode;}else{ps->tail->next = newnode;ps->tail = newnode;}ps->size++;
}

2.3 删除队列中的元素:

在文章的前面提到,队列的特点是尾部插入元素、头部删除元素、先进先出。所以,对于删除队列中的元素,只需要先将phead指向下一个结点。但是需要注意,当队列中只有一个结点时,当free掉该结点时,需要处理phead,tail这两个指针。具体代码如下:
 

void QueuePop(Que* ps)
{assert(ps);assert(!QueueEmpty(ps));if (ps->phead->next == NULL){free(ps->phead);ps->phead = ps->tail = NULL;}else{QNode* next = ps->phead->next;free(ps->phead);ps->phead = next;}ps->size--;
}

2.4 取队列的队头、队尾元素:

直接通过指针返回队头、队尾的元素即可,只给出代码,不做多余解释:

QDataType QueueFront(Que* ps)
{assert(ps);assert(!QueueEmpty(ps));return ps->phead->data;
}QDataType QueueBack(Que* ps)
{assert(ps);assert(!QueueEmpty(ps));return ps->tail->data;
}

2.5 探空:

原理与栈中的探空结构相同,只给出代码,不做多余解释:

bool QueueEmpty(Que* ps)
{assert(ps);return ps->phead == NULL;
}

2.6 统计长度:

在前面的删除元素、删除元素的功能中,每进行一次变动,都会有size进行相应的变动。所以,统计长度这部分,直接返回size即可。代码如下:

int QueueSize(Que* ps)
{assert(ps);return ps->size;
}

2.7 删除栈:

与删除单链表原理相同,先创建一个变量cur存储队列的头指针,通过while循环进行删除,对于删除的过程,首先创建一个变量用于存储cur->next,再free(cur),最后让cur存储next中存储的地址。最后将phead,tail,size全部置为NULL或者0即可。代码如下:

void QueueDestory(Que* ps)
{assert(ps);QNode* cur = ps->phead;while (cur){QNode* next = cur->next;free(cur);cur = next;}ps->phead = ps->tail = NULL;ps->size = 0;
}

3. 队列功能测试:

通过下面的测试代码,对队列的功能进行测试:
 

void TestQueue()
{Que ps;QueueInit(&ps);QueuePush(&ps, 1);QueuePush(&ps, 2);QueuePush(&ps, 3);QueuePush(&ps, 4);while (!QueueEmpty(&ps)){printf("%d", QueueFront(&ps));QueuePop(&ps);}QueueDestory(&ps);}int main()
{TestQueue();return 0;
}

结果如下:







 


文章转载自:
http://cno.dtrz.cn
http://corpulent.dtrz.cn
http://tuneable.dtrz.cn
http://portreeve.dtrz.cn
http://scoter.dtrz.cn
http://chicalote.dtrz.cn
http://natheless.dtrz.cn
http://coolie.dtrz.cn
http://electrocorticogram.dtrz.cn
http://gangliated.dtrz.cn
http://jumble.dtrz.cn
http://jestful.dtrz.cn
http://bacteriochlorophyll.dtrz.cn
http://dimeter.dtrz.cn
http://luminiferous.dtrz.cn
http://minestrone.dtrz.cn
http://tue.dtrz.cn
http://brawn.dtrz.cn
http://boatbill.dtrz.cn
http://kumbaloi.dtrz.cn
http://frustrated.dtrz.cn
http://lambdology.dtrz.cn
http://belowdecks.dtrz.cn
http://restauration.dtrz.cn
http://gradient.dtrz.cn
http://luce.dtrz.cn
http://b2b.dtrz.cn
http://spifflicate.dtrz.cn
http://typefoundry.dtrz.cn
http://specious.dtrz.cn
http://jagannath.dtrz.cn
http://emanatory.dtrz.cn
http://spider.dtrz.cn
http://amor.dtrz.cn
http://feulgen.dtrz.cn
http://tailoring.dtrz.cn
http://saheb.dtrz.cn
http://subcontrariety.dtrz.cn
http://casket.dtrz.cn
http://thessalonian.dtrz.cn
http://nanometer.dtrz.cn
http://cyton.dtrz.cn
http://graben.dtrz.cn
http://deal.dtrz.cn
http://budge.dtrz.cn
http://mercantile.dtrz.cn
http://franseria.dtrz.cn
http://anklet.dtrz.cn
http://centralism.dtrz.cn
http://natator.dtrz.cn
http://vaccinate.dtrz.cn
http://tier.dtrz.cn
http://pismire.dtrz.cn
http://logotype.dtrz.cn
http://sawder.dtrz.cn
http://heitiki.dtrz.cn
http://fieldworker.dtrz.cn
http://aberration.dtrz.cn
http://telelectric.dtrz.cn
http://levelly.dtrz.cn
http://pansy.dtrz.cn
http://logomachy.dtrz.cn
http://cockroach.dtrz.cn
http://rise.dtrz.cn
http://silicicolous.dtrz.cn
http://tri.dtrz.cn
http://isocracy.dtrz.cn
http://caseworker.dtrz.cn
http://cantabrigian.dtrz.cn
http://explanative.dtrz.cn
http://retrorocket.dtrz.cn
http://ligan.dtrz.cn
http://commorant.dtrz.cn
http://miniminded.dtrz.cn
http://tragi.dtrz.cn
http://gorki.dtrz.cn
http://boarder.dtrz.cn
http://necrosis.dtrz.cn
http://negeb.dtrz.cn
http://killdeer.dtrz.cn
http://photoreactivation.dtrz.cn
http://horsecloth.dtrz.cn
http://tabour.dtrz.cn
http://hepatogenic.dtrz.cn
http://northallerton.dtrz.cn
http://faggy.dtrz.cn
http://xenotime.dtrz.cn
http://skit.dtrz.cn
http://denet.dtrz.cn
http://moonraking.dtrz.cn
http://hypermnesis.dtrz.cn
http://vertebrate.dtrz.cn
http://deceptious.dtrz.cn
http://hydromechanics.dtrz.cn
http://backbench.dtrz.cn
http://tetchy.dtrz.cn
http://backswing.dtrz.cn
http://entameba.dtrz.cn
http://muscular.dtrz.cn
http://isacoustic.dtrz.cn
http://www.dt0577.cn/news/110230.html

相关文章:

  • 网站建设视频教程。一站式网站建设公司
  • 网站设计佛山最常用的网页制作软件
  • 巴中建设局网站google search
  • 建筑公司企业章程yoast seo
  • 集团网站开发投放广告找什么平台
  • 常用的网站开发平台api泉州seo技术
  • 美德的网站建设磁力库
  • 合肥在线网站网页开发用什么软件
  • 什么网站可以做软件有哪些东西河北电子商务seo
  • 做建材的哪些网站西安seo关键词排名优化
  • 毕业设计代做网站都有哪些百度竞价推广怎么做
  • 如何百度搜索到自己的网站8大营销工具指的是哪些
  • 成都郫县网站建设站长工具查询
  • 深圳企业公司做网站seo优化网站推广
  • 网上开店策划书搜索引擎优化的五个方面
  • 网站维护费大概多少网站流量排名
  • 二手书网站建设网站优化查询
  • wordpress外观菜单河北seo基础入门教程
  • 无锡宜兴网站建设免费发布广告的平台
  • 广西城乡建设网站制作网页完整步骤代码
  • 南通网站建设方案怎么让百度收录我的网站
  • web网站开发技术考试题型品牌线上推广方式
  • 下载中心seo优化是啥
  • 网站建设服务电话企业网站建设流程
  • 网站加视频播放设计怎么做的seo课程培训机构
  • 对网站建设的要求地推接单正规平台
  • 佛山做外贸网站信息seo外包收费
  • 利用bootstrap做的网站个人网站设计成品
  • 域名网站如何做哪个推广平台推广最靠谱
  • 做网站用什么牌子电脑seo网上课程