消息队列【队列升级版(用链表的结构构造队列)】 #数据结构与算法(4)

上次我们用 顺序表 的形式来构造了一个队列,通过对列的特性:先进先出 及到最后的扩容操作我们大致实现了一个队列的所有结构和操作。但是对于队列的结构其实还有另外一种构造方法!!!那就是通过链表的基本结构来定义队列。

用链表的结构来定义队列的好处:

①.我们不在进行写所谓的扩容操作【因链表的结构本身就不需要扩容】。

②.整体来说,用链表构造的队列比用顺序表构造的队列对空间的利用率更高【记住行,是整体来说,如果储存少量数据的话,还是顺序表占的空间更小一点!!!因链表本身对数据的存储需要更大的空间】

废话不多说,咱直接上干货:

【首先,我们要对相关节点信息进行定义,因为是消息队列,所以我们定义的是静态的字符数组】

【其次,我们要定义队列,包括:定义虚拟头 ,定义尾指针 ,长度】

【然后,我们就要初始化节点信息,我们传进来字符串,给它动态的申请空间,然后将传进来的字符串拷贝进去,最后是初始化空地址】

【这个是初始化队列】

【然后就是入队操作,我们传进来队列和传进来入队的字符串内容,定义一个指针Node,然后将新节点地址插入尾部,将指针Next指向尾部】

【这个是出队操作,可以看到这里有一个判空操作,我在下面定义】

【这个是判空操作!!!】

【这个是打印新的节点!!!】

【这个是清空操作,传进来对列,如果当前队列不存在的话,我什么也不干,队列的头下一个点,然后tmp进入头下一个节点,释放掉当前队列(free)】

​【这上面几幅图是我主函数的构造过程!!!】

​【这个是输入操作!!!】

--结束--

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

》(。・ω・。)ノ♡

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值