首页 > 其他分享 >数据结构-队列

数据结构-队列

时间:2023-01-18 09:33:20浏览次数:45  
标签:队列 queue int tail 100 数据结构 size

数据结构-队列

队列是一种特殊的线性表,他的性质只允许元素从最后入,从最前出,所以他也满足FIFO(First In First Out)

性质,也就是先进先出。

我们可以先试着使用函数在C++中定义一个队列:

#include <bits/stdc++.h>
using namespace std;

int queue[100];                         // 定义一个长度100的数组来模拟队列
int head=0, tail=0, size=0;
void pop(){
    head ++;                            // 让头指针增加1达到删除作用
    head %= 100;                        // 环形队列达到节省空间的作用
    size --;                            // 总长度减少1
}

void push(int x){
    queue[tail] = x;                    // 队列尾部数据设为x达到弹入作用
    tail ++;                            // 尾指针增加1为下一次push做准备
    tail %= 100;                        // 与上面同理,使用环形队列
    size ++;                            // 总长度增加1
}

对于一个环形队列,当头或者尾指针到达数组最后时,让他回到0号下标的位置可以达到节省空间的效果。

当然,我们可以使用C++的STL模板库来模拟队列:

#include <bits/stdc++.h>            // bits/stdc++.h库中有队列的模板,如果不使用需要导入queue库

queue <typename> s;                 // 定义一个typename类型的队列
s.pop()                             // 弹出队列头部的元素
s.push(x)                           // 在队列尾部弹入x
s.size()                            // int类型,返回s的大小
s.empty()                           // bool类型,如果s为空返回true,否则返回false
s.front()                           // 返回s的头部元素
s.tail()                            // 返回s的尾部元素

希望可以给你带来新的知识,谢谢阅读。

标签:队列,queue,int,tail,100,数据结构,size
From: https://www.cnblogs.com/Earnoise/p/stl-queue.html

相关文章

  • 数据结构 玩转数据结构 9-5 Leetcode上线段树相关的问题
    0课程地址https://coding.imooc.com/lesson/207.html#mid=13846 1重点关注1.1线段树区间查询见3.1  2课程内容  3......
  • [数据结构]双向链表(C语言)
    双向链表双向链表概念双向链表也叫双链表,其每个数据结点中都有两个指针,分别指向直接后继和直接前驱。在单向链表中若要找到某个节点的前驱节点,需要先遍历到这个节点,然后......
  • 数据结构:第六章图
    数据结构:第六章图6.1图的概述完全图n个顶点的无向图中边数达到n(n-1)/2成为无向完全图n个顶点的有向图中遍数达到n(n-1)有向图的完全图6.3图的遍历广度优先BFS深度优先,类似......
  • 数据结构 玩转数据结构 9-4 线段树中的区间查询
    0课程地址https://coding.imooc.com/lesson/207.html#mid=13846 1重点关注1.1线段树区间查询见3.1  2课程内容  3......
  • 读编程与类型系统笔记09_泛型数据结构
    1. 恒等函数1.1. 在代数中,恒等函数指的是函数f(x)=x1.2. 恒等逻辑与getNumbers()和assembleWidgets()的问题域解耦,因为恒等逻辑和问题域是正交的,或者说是独立的2.......
  • 数据结构 玩转数据结构 9-3 创建线段树
    0课程地址https://coding.imooc.com/lesson/207.html#mid=13845 1重点关注1.1创建线段树见3.1 1.2代码如何引入方法见3.1 2......
  • 【ES6】JS的Set和Map数据结构
    【ES6】JS的Set和Map数据结构​​一、Set​​​​1、基本用法​​​​2、4种操作方法​​​​3、4种遍历方法​​​​4、Set的应用​​​​1)Set转化为数组​​​​2)去除数组......
  • C/C++数据结构题目[2023-01-16]
    C/C++数据结构题目[2023-01-16]以下内容二选一题目1:校园导航系统的设计与实现问题描述:校园导航系统能够提供校园内场所信息和路径查询。以传媒大学校园为例,校园内包......
  • 跳跃表数据结构与算法分析
    作者:京东物流纪卓志目前市面上充斥着大量关于跳跃表结构与Redis的源码解析,但是经过长期观察后发现大都只是在停留在代码的表面,而没有系统性地介绍跳跃表的由来以及各种常量......
  • RabbitMQ 高级消息队列协议
    https://blog.csdn.net/qq_46127735/article/details/120498245http://www.codebaoku.com/it-linux/it-linux-112105.htmlhttps://baike.baidu.com/item/rabbitmq/937214......