一起talk C栗子吧(第二十二回:C语言实例--队列一)

各位看官们,大家好,上一回中咱们说的是表达式求值的例子,该例子使用了栈,这一回咱们说的是栈的

兄弟:队列。闲话休提,言归正转。让我们一起talk C栗子吧!

我们在这里说的队列是一种抽象的数据结构,大家不用想的太抽象了,哈哈,其实它和我们日常生活中所

见的队列一样。不管怎么样,我们还是举一个容易理解的例子:大家在假期出去旅游的时候,都有过排队

买门票的经历吧。游客们在售票点的窗口前排成了一长串队列,售票人员先把门票卖给排在队列前面的游

客,买到门票的游客拿着门票兴高采烈地离开了队列,刚来到售票点的游客排在队列尾部默默地等着购买

门票。在这个例子中,游客们为了购买门票在售票点旁边排成一条长队,这条长队可以看作是队列,队列

里的游客可以看作是队列中存放的元素。买到门票的游客离开队列,可以看作是从队列中删除元素,想要

购买门票的游客排到队列里,可以看作是向队列中插入元素。我这么说,大家还觉得队列抽象吗?如果觉

得抽象的话,下次旅游购买门票时多留意一下就可以。

我们来说一下队列的特点:

1.队列有头也有尾。比如刚才例子中,先购买到门票的游客可以看作是队列头部。刚刚排到队列里的游客

可以看作是队列的尾部。

2.从队列中删除元素只能在队列头部进行。比如刚才例子中购买到门票的游客离开队列,可以看作是从队

列头部删除了一个元素。

3.向队列中插入元素只能在队列尾部进行。比如刚才例子中想要购买门票的游客排到队列里,可以看作是

向队列中插入一个元素。

4.队列中的元素遵守”先进先出“的规则。比如刚才例子中先排队的游客可以先购买到门票。

看官们,正文中就不写代码了,详细的代码放到了我的资源中,大家可以点击这里下载使用。这个队列是

通过顺序存储的方式实现的,具体到代码中是使用了一个数组来从充当队列。

各位看官,关于队列的例子咱们就说到这里。欲知后面还有什么例子,且听下回分解。

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-12-27 08:22:24

一起talk C栗子吧(第二十二回:C语言实例--队列一)的相关文章

一起talk Vim吧(第二十二回:Vim大结局)

各位看官们,大家好,欢迎大家一起来听大型章回体科技小说 :Vim.上一回咱们介绍了Vim中的NerdTree 插件..这一回,咱们不再介绍新的Vim插件.不过咱们会对前面章回中说过的Vim插件和Vim的刀法做一 个总结.这一回是大型章回体科技小说的最后一回,因此,这一回叫作Vim大结局.好了,还是那句话, 闲话休提,言归正转.让我们一起talk Vim吧! 看官们,时光如箭,岁月如歌,前面的Vim刀法仿佛还在眼中闪动,后面的Vim插件又相继飞来.咱们在 前面的章回中介绍了Vim的刀法和Vim的插

一起talk C栗子吧(第二十三回:C语言实例--队列二)

各位看官们,大家好,上一回中咱们说的是队列及其特点,并且通过例子来说明队列,这一回咱们继续说 队列,不过咱们说的是链式存储形式的队列,这与上一回中顺序存储形式的队列不一样.闲话休提,言归 正转.让我们一起talk C栗子吧! 在代码中通过链表来实现队列的链式存储.而且定义了一个头结点,头结点主要用来保存队列的头部和尾 部信息,以及队列的长度信息.我们对队列的操作,本质上是对链表进行操作,队列中的结点可以看作是 链表中的结点,对队列进行入列(EnQueue)和出列(DeQueue)的操作,可以看作

一起talk C栗子吧(第十二回:C语言实例--单链表一)

各位看官们,大家好,从今天开始,我们讲大型章回体科技小说 :C栗子,也就是C语言实例.闲话休提, 言归正转.让我们一起talk C栗子吧! 看官们,上一回中咱们没有说具体的例子,而且是说了例子中的文件组织结构.这一回咱们继续说C例子, 说的例子是链表,更准确的说法叫作单链表.咱们不但要说C例子,而且会在例子中使用上一回中说过的 文件组织结构,就当作是举例说明文件组织结构的使用方法. 有点一石二鸟的感觉,哈哈. 链表定义 看官们,所谓的链表其实就是一组元素通过一定的方式链接在一起.比如我们坐的火车

JVM【第十二回】:【Java引用】

无论通过引用计数算法判断对象的引用数量,还是通过根搜索算法判断对象的引用链是否可达,判定对象是否存活都与"引用"有关.在JDK1.2之前,Java中的引用的定义很传统:如果reference类型的数据中存储的数值代表的是另外一块内存的起始地址,就称这块内存代表着一个引用.这种定义很纯粹,但是太过狭隘.我们希望能描述这样一类对象:当内存空间还足够时,则能保留在内存之中:如果内存在进行垃圾收集后还是非常紧张,则可以抛弃这些对象.很多系统的的缓存功能都符合这样的引用场景 在JDK1.2之后,

python入门第二十六天--网络通信

网络编程 自从互联网诞生以来,现在基本上所有的程序都是网络程序,很少有单机版的程序了. 计算机网络就是把各个计算机连接到一起,让网络中的计算机可以互相通信.网络编程就是如何在程序中实现两台计算机的通信. 举个例子,当你使用浏览器访问新浪网时,你的计算机就和新浪的某台服务器通过互联网连接起来了,然后,新浪的服务器把网页内容作为数据通过互联网传输到你的电脑上. 由于你的电脑上可能不止浏览器,还有QQ.Skype.Dropbox.邮件客户端等,不同的程序连接的别的计算机也会不同,所以,更确切地说,网络

第四十二回 巧相遇衷言托心事 怕麻烦快意成婚姻

文鑫载美丽到她姐姐的住家的楼下,美丽说:"今这么晚了,明日再上去.明日上午您到此处来,我带您买点东西,在我姐家吃饭.我妈刚好从家乡来了.这样我姐姐.姐夫.母亲同意,就可结婚.如果她们同意,明晚叫我姐.姐夫.母亲到您处吃饭,就算定婚,晚上我就可留在您处了." 文鑫想不到,踏破铁鞋无处寻,得来全不费工夫.以前选择那么多,也不顺眼,今美丽皮肤雪白,不高不矮,不肥不瘦,脸上浮现桃红,且有酒窝,煞是好看.特别是她那灿烂的一笑,夺人魂魄,有着性魅力.与种菜的碧如比起来,胜出多了.碧如初中未毕业,美

centos LNMP第二部分nginx、php配置 第二十四节课

centos  LNMP第二部分nginx.php配置  第二十四节课 上半节课 下半节课 f

Python开发【第二十二篇】:Web框架之Django【进阶】

Python开发[第二十二篇]:Web框架之Django[进阶] 猛击这里:http://www.cnblogs.com/wupeiqi/articles/5246483.html 博客园 首页 新随笔 联系 订阅 管理 随笔-124  文章-127  评论-205 Python之路[第十七篇]:Django[进阶篇 ] Model 到目前为止,当我们的程序涉及到数据库相关操作时,我们一般都会这么搞: 创建数据库,设计表结构和字段 使用 MySQLdb 来连接数据库,并编写数据访问层代码 业务逻

第二十九章 springboot + zipkin + mysql

zipkin的数据存储可以存在4个地方: 内存(仅用于测试,数据不会持久化,zipkin-server关掉,数据就没有了) 这也是之前使用的 mysql 可能是最熟悉的方式 es Cassandra 一.代码(基于 第二十八章 springboot + zipkin(brave定制-AsyncHttpClient)) 1.pom.xml 1 <dependency> 2 <groupId>io.zipkin.brave</groupId> 3 <artifactI