当前位置:首页 > C++目录 > 正文内容

【数据结构】队列—基本概念

亿万年的星光5年前 (2021-02-21)C++目录17218

一、基本定义

队列是一种先进先出的线性结构,简称FIFO结构。特点就是“先进先出”


二、队列的相关概念

  1. 队头与队尾:允许元素插入的一端称为队尾,允许元素删除的一端称为队头

  2. 入队:队列的插入操作

  3. 出队:队列的删除操作


例如我们有一个存储型元素的队列,我们依次入队:{1,2,3}

添加元素时,元素只能从队尾一端进入队列,也即是2只能跟在1后面,3只能跟在2后面。如果在队列中的元素要出队:

元素只能从队首出队列,出队列的顺序为1,2,3,与入队列时的顺序一致,这就是所谓的“先进先出”。


三、队列的分类

  1. 基于数组的循环队列(循环队列)

  2. 基于链表的队列(链队列)

三、队列的基本操作

  1. 入队:push

  2. 出队:pop

  3. 求队列元素个数:size

  4. 判断是否为空: empty

  5. 队首元素:front

  6. 队尾元素:back

    扫描二维码推送至手机访问。

    版权声明:本文由青少年编程知识记录发布,如需转载请注明出处。

    分享给朋友:

    相关文章

    CSP-J2021年普及组复赛T4——小熊的果篮

    【题目描述】    小熊的水果店里摆放着一排 n 个水果。每个水果只可能是苹果或桔子,从左到右依 次用正整数 1、2、3、……、n 编号。连续排在一起的同一种...

    C++中的逻辑与运算

    样例#include<iostream> using namespace std; int main(){ cout<<(1&1)...

    【数论】龟速乘

    【数论】龟速乘

    我们前面一篇文章学习了快速幂。它可以解决两类问题:a^b,(a^b)%c对于第一类,我们可以使用递归法或者迭代法可以求出,为了计算的快,我们可以引入位运算操作,但是目前来看,无论怎么优化都不能超过lo...

    完全背包问题

    1. 问题定义完全背包问题是经典的动态规划问题之一。它的基本描述如下:有一个容量为 V 的背包。有 N 种物品,每种物品有无限个可用。第 i ...

    排序算法中的一些分类

    排序算法中的一些分类

    一、比较和非比较的排序二、时间复杂度和稳定性如何界定一个排序算法是否是稳定的?假定在待排序的记录序列中,存在多个具有相同的关键字的记录,若经过排序,这些记录的相对次序保持不变,即在原序列中,r[i]=...

    C++中的max和min函数(最大值,最小值)

    1.头文件      最大值最小值函数所在头文件是#include<algorithm>2.用法#include<iostream> #incl...