一、队列的定义

队列是啥?

数据从表的一端进,从另一端出,且遵循 "先进先出" 原则的线性存储结构就是队列。

队列的两个基本操作:入队将一个数据放到队列尾部;出队从队列的头部取出一个元素。

队列的应用:循环队列、阻塞队列、并发队列、优先级队列等。

栈和队列不要混淆,栈结构是一端封口,特点是"先进后出";而队列的两端全是开口,特点是"先进先出"。

队列存储结构的实现有以下两种方式:

  1. 顺序队列:在顺序表的基础上实现的队列结构;
  2. 链队列:在链表的基础上实现的队列结构;

两者的区别仅是顺序表和链表的区别,即在实际的物理空间中,数据集中存储的队列是顺序队列,分散存储的队列是链队列。

队列的操作

入队(尾部入队)
  ①将值存入rear所代表的位置。
  ②rear = (rear+1)%数组的长度。
出队(头部出队)
  front = (front+1)%数组的长度。
队列是否为空
  front和rear的值相等,则该队列就一定为空。

假溢出

随着入队、出队的进行,会使整个队列整体向后移动,就会出现上图中的现象:队尾指针已经移到了最后,即队尾出现溢出,无法再进行入队操作,然而实际上,此时队列中还有空闲空间,

从无到有算法养成篇-栈和队列·队列相关推荐

  1. 从无到有算法养成篇-栈和队列·栈

    一.栈结构示意图 二.栈的常规操作 1.定义一个栈结构 /* 顺序栈结构 */ typedef struct {SElemType data[MAXSIZE];int top; /* 用于栈顶指针 * ...

  2. 从无到有算法养成篇-利⽤栈思想解决问题

    一.什么时候用到栈思想? 栈的思想应⽤数据是线性的,问题可以利⽤栈的特性先进后出去解决问题! 二:思想实战 1.括号匹配检验:假设表达式中允许包含两种括号:圆括号与⽅括号,其嵌套顺序随意,即() 或者 ...

  3. 从无到有算法养成篇:一文读懂有关Tree的前世今生

    前言 对于大量的输入数据,链表的访问时间太长,不宜使用.而树刚好就是一种极大地缩短访问时间的数据结构,其平均访问时间复杂度为O(logN). 鉴于有些朋友并不仅仅是因为提高自己的编程能力来学习数据结构 ...

  4. 从无到有算法养成篇-链式存储结构之循环链表

    前言 循环,顾名思义就是:绕. 打个比方,就是从前山上有座庙,庙里有个老和尚和一个小和尚,有一天老和尚对小和尚说"从前山上有座庙,庙里有个老和尚和一个小和尚,有一天老和尚对小和尚说" ...

  5. 从无到有算法养成篇-双向链表与双向循环链表

    一.双向链表 1.定义:从下图中的定义结点的代码我们能发现,双向与单向最明显的区别就是是否可以反向查找上一结点. 定义 2.创建:大致和单向的创建差不多,区别在于多了prior的处理 步骤: 1.*L ...

  6. 从无到有算法养成篇-算法基础常识

    一.基础知识 1.数据结构常用术语: 1.1数据结构中的五个基本概念: 数据<-数据对象<-数据元素<-数据项 数据结构 1.2名词解析: • 数据:是描述客观事物的符号,是计算机中 ...

  7. 从无到有算法养成篇-线性表历练

    一.线性表定义及特色 满足数据元素不同,但是在同一个线性表中的元素必定具有相同的特点,即属于同一数据对象, 相邻数据元素之间存在这个序偶关系. 诸如此类由(n>=0)个数据特性相同的元素构成的有 ...

  8. 从无到有算法养成篇-单向循环链表的常规操作

    1.单向循环链表的创建 创建 tips: 由于存在两种情况: ① 第一次开始创建; ②已经创建,往里面新增数据 所以需要判断是否第一次创建链表 YES->创建一个新结点,并使得新结点的next ...

  9. 从无到有算法养成篇-线性表实战篇

    实战一:题⽬1 将2个递增的有序链表合并为⼀个有序链表; 要求结果链表仍然使⽤两个链表的存储 空间,不另外占⽤其他的存储空间. 表中不允许有重复的数据 例如: La {1,2,3} , Lb {3, ...

最新文章

  1. 花几万元报IT培训班,只为进入互联网大厂:有人年薪百万,有人黯然退场
  2. hadoop3.0.0 源码阅读之一:IPC Client部分
  3. 如何在SQL Server查询语句(Select)中检索存储过程(Store Procedure)的结果集
  4. 开发步骤_直播软件开发直播APP开发具体步骤
  5. 【转】Mac下升级python2.7到python3.6
  6. Commons IO -- IOUtils
  7. LNMP平台部署及应用
  8. php 抓取 wordpress 文字内容,WordPress获取页面、文章内容代码
  9. github项目地址在哪里看_拍张照片求解数独,计算机如何从图中看懂题目,这个GitHub热榜项目告诉你...
  10. 中国住户调查年鉴(2000-2021年)
  11. android电视盒子蓝牙遥控器app,Android TV 智能电视/盒子 APP 开发焦点控制 两种方法实例...
  12. 第二章 爬取案例-链家租房数据获取 2021-09-16
  13. 360极速浏览器、360浏览器如何清除缓存、清除历史记录、清除cookies
  14. 双问号??在 js 中的应用
  15. UEFI是什么意思?UEFI和BIOS的区别是什么?
  16. c语言中用temp程序,e__temp_c语言第02章作业.doc
  17. Java尚硅谷基础笔记-day4数组-数组常见算法
  18. 计算机考研算什么学士学位
  19. 常见传统算法实现DOA估计总结CBF、Capon、MUSIC、ESPRIT、OMP
  20. SSD_学习笔记记录

热门文章

  1. (Mirage系列之十)Mirage经典案例之系统恢复
  2. 【HoorayOS】开源的Web桌面应用框架(第二版 v120311)
  3. wolf李桃梅CCNP视频笔记(OSPF-3)(上)
  4. BLE Mesh(1)—— 简述
  5. linux tr 字符串,linux tr命令-转换或删除输入的字符的
  6. python迷宫问题的所有路径_python——迷宫问题总结
  7. 智能计米器jk76怎么安装_智能电视怎么安装软件?详细教程一学就会
  8. html5 java交互_html5+jquery与ssm进行json交互集成项目
  9. 列出mongodb里的所有表的名字,合并所有表到一个大表,用pandas
  10. 任务的定义、任务切换的原理及实现