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

7星彩网站开发宜昌高端网站建设

7星彩网站开发,宜昌高端网站建设,企业网站建设 厦门,网站建设2017排名一、队列的概述 队列也是一种特殊的线性表,只允许在一段插入数据,另一端删除数据。插入操作的一端称为队尾,删除操作的一端称为队头。 如图: 二、队列相关操作 1.队列结构体的声明 类似于栈,他肯定也得借助于数组或…

一、队列的概述

队列也是一种特殊的线性表,只允许在一段插入数据,另一端删除数据。插入操作的一端称为队尾,删除操作的一端称为队头。

如图:

二、队列相关操作

1.队列结构体的声明

类似于栈,他肯定也得借助于数组或者是链表才能实现队列的结构体,考虑到队列的特性,我们应该考察到队尾的插入操作,队头的删除操作。

还是数组和链表两种结构作底层。

数组很明显不能胜任这个任务,数组尾部的插入和删除操作就是O(1),但是头部的插入和删除是O(n),且无法改善,所以就不用。

链表的话就说单链表,单链表由于指针的单向不循环,尾部的插入和删除操作就是O(n),头部的话可以直接通过链表指针遍历到,那就是O(1)。

看起来都不行,当然,也可以去考虑双向链表,但是这里给出一种思路:

底层数组存储的话已经是没招了,底层借助链表,归根结底就是尾部指针得遍历才能得到,所以才为O(n),那干脆我们多写一个指针呗,专门去记录尾结点的地址,方便遍历。

即,存储:

队列的结点由单链表实现,队列的特性由另外一个结构体来实现:

便于后续队尾和队头的操作。

2.初始化队列

初始化phead = ptail = NULL即可。

也就是说,底层确实是用单链表的结点实现,但是我们写函数时只用到Queue这层结构体:

测试代码:

3.入队(队尾的插入)

尾部插入很明显了:

申请个新结点先,然后

ptail->next = newnode;

ptai = ptail->next;

代码实现:

不过很明显容易出现空指针解引用问题,malloc的newnode我们确实检验过了,但是pq里面的ptail呢,换句话说,如果队列刚刚初始化,还为空的时候ptail可是NULL,所以要单独拿出来这种情况分析一下:

所以if-else一下:

测试代码:

4.出队(队头的删除)

老生常谈了,要想删除数据,首先队列不能为空:

不为空再画图去删:

再检验一下,如果只有一个结点,并且删除后,代码仍然符合吗

不为空断言肯定能通过,结果是phead置空了,符合要求,因为队列为空了,但是ptail并未处理,ptail最终指向的肯定是一块已经被释放的空间了,如果这个时候再插入,肯定就错了,所以:
if一下

代码测试:

前几次的出队正确,且如果为空可以检测出来。

5.取队头数据

先验队列不为空再取数据:

测试代码:

6..取队尾元素

基本同取队头元素:

测试:

7.取队列有效元素个数

拿着图稍微比划两下就能看出来了,让遍历指针一直走,如果不是NULL,那就++再指针后移:

测试代码:

栈和队列基础就先说这么多,后面可能还会对文章进行修改,稍加一些内容。栈和队列内容较少,较简单(建立在链表和顺序表非常熟悉的基础上),所以具体特性,实际应用就到Oj题再看。

http://www.dtcms.com/wzjs/801149.html

相关文章:

  • .net网站架设网络营销建设网站实训
  • 万载网站建设网站制作教程及流程
  • ftp怎么找网站后台成都网站建设方案优化
  • 湖南省做网站那个企业便宜做投票网站的
  • 最大郑州网站建设公司PHP搭建IDC网站
  • 包头市做网站物联网平台网站开发
  • 安徽专业网站制作公司网站为什么要备案
  • 网站价格评估 优帮云自己能建设网站
  • 比一网站建设成都金融网站建设公司排名
  • 瀑布式网站企业所得税怎样计算
  • 常州西站建设规划云南网站建设维护
  • 临汾做网站公司哪家好深夜睡不着一个人看的正能量
  • 上海网站建设的意义金宝贝早教中心网页界面设计
  • 营销类网站建设做游戏还是做网站好
  • 无锡市网站建设服饰网站建设技术方案
  • 北京网站建设公司哪个最好网站开发小图标怎么设置
  • 移动网站开发的视频下载网页游戏单机
  • 使用cnnic证书的网站官方网站建设对比
  • 网站开发公司企业atheme wordpress
  • 淘宝客怎么做网站做网站价格多少钱
  • 怎么查一个网站的备案信息做网站的英文编辑
  • 昆明360网站制作视频网站后台
  • 网站开发 足球球队信息做跨境电商被骗了
  • 门户网站是如何做引流的wordpress支持什么语言包
  • 可免费商用的cms建站系统平台外宣推广技巧
  • 做网站需要哪些手续手机网站触屏版
  • 建网站带宽多少合适上海企业网站制作方法
  • 女做受视频网站做订阅号要建立网站吗
  • 成都网站建设公司湖南岚鸿公司网站建设软件下载
  • 汕头网站开发高州市荷花镇网站建设