数据结构(长期更新)第8讲:队列

数据结构(长期更新)

第8讲:队列

++跟着潼心走,轻松拿捏C语言,困惑通通走,一去不回头~欢迎开始今天的学++ ++习内容,你的支持就是博主最大的动力++ 。博主主页:潼心1412o-CSDN博客


目录

数据结构(长期更新)

第8讲:队列

[8.1 前言](#8.1 前言)

[8.2 概念和性质](#8.2 概念和性质)

[8.3 实现方式/底层结构](#8.3 实现方式/底层结构)

[8.4 基本操作](#8.4 基本操作)

[8.5 用队列实现栈](#8.5 用队列实现栈)

[8.6 用栈实现队列](#8.6 用栈实现队列)


8.1 前言

上节课我们学习了栈,这是一种特殊的线性表,只能在一端(即栈顶)对数据进行操作,底层是通过数组实现的,而今天我们要学习的是队列,和栈完全相反,可以进行类比学习。还等什么,gogogo,出发喽~

8.2 概念和性质

队列:只允许在一端进行插入,一段进行删除的线性表。

出队列------队头:删除端

入队列------队尾:插入端

我们可以联想日常生活中排队的情景方便记忆

性质:先进先出即 FIRST IN FIRST OUT(FIFO)

8.3 实现方式/底层结构

底层结构为链表

原因:虽然数组和链表都有一端时间复杂度为O(N),一端为O(1),但是我们知道链表是可以进行优化的,比如增加一个尾指针,就可以大大提高运行效率。但是数组的头删就不太行,效率很低。所以优先选择链表。

8.4 基本操作

queue.h

初始化

创建新结点

入队---队尾

出队---队头

销毁

8.5 用队列实现栈

https://leetcode.cn/problems/implement-stack-using-queues/description/

思路分析:如何实现用两个队列实现栈?

入栈:往非空队列尾插入数据

出栈:将前n-1个数据出队列,入另一个队列,pop第一个队列队尾元素

取栈顶元素:取非空队列队尾元素

8.6 用栈实现队列

https://leetcode.cn/problems/implement-queue-using-stacks/description/

思路分析:创建两个栈,一个专门用于存放数据PushST,一个专门用于出数据PopST

入队:往PushST里面入栈

出队:只要PopST不为空,就出栈;为空先把PushST里面的数据倒进PopST,再出栈

取队头:逻辑同出队,但是只取不删除


++好了今天的学习内容就到这里啦,谢谢你的陪伴,我是潼心,下次再见~如果这篇文章对你有帮助的话。请务必给主播一个一键三连,球球了,这对主播很重要~++

博主主页:潼心1412o-CSDN博客

相关推荐
延凡科技13 小时前
多场景落地复盘:端边云架构无人机智能巡检系统设计与实践
大数据·数据结构·人工智能·科技·架构·无人机·能源
皓月斯语18 小时前
B3842 [GESP202306 三级] 春游 题解
数据结构·c++·算法·题解
春日见19 小时前
算法与数据结构----哈希表
数据结构·人工智能·算法·机器学习·自动驾驶·哈希算法·散列表
萌动的小火苗19 小时前
嵌入式开发中的栈与队列:任务调度为什么依赖数据结构
数据结构·c++·单片机·嵌入式硬件
叩码以求索20 小时前
统计按位或能得到最大值的子集数目(一)
数据结构·算法
tachibana220 小时前
hot100 数组中的第K个最大元素(215)
java·数据结构·算法·leetcode
星恒随风20 小时前
C++ STL 栈详解:stack 的使用、经典题目与简单模拟实现
开发语言·数据结构·c++·笔记·学习
txzrxz20 小时前
单调队列讲解
数据结构·c++·算法·单调队列
Keven_1121 小时前
算法札记:树状数组的用途
数据结构·算法
cpp_25011 天前
P1540 [NOIP 2010 提高组] 机器翻译
数据结构·c++·算法·队列·noip·洛谷题解