队列:队列与栈不同,它是一种先进先出的结构

实现
1、数组
2、链表

记录的数据
1、队首位置:第一个元素的位置
2、队尾位置:最后一个元素的位置
3、队列大小:size

队列操作

entryQueue():入队
exitQueue():出队
isQueueEmpty():队列为空
isQueueFull():队列满

队列的实现(顺序数组的实现)
将队列的定义放在queue.h中

class queue
{private:int size;int* a;int head;int tail;public:queue();~queue();bool isQueueEmpty();bool isQueueFull();void entryQueue();int exitQueue();int getSize()
}

队列的具体实现:

#include<queue.h>
queue::queue(int size)
{a = new int[size];this->size = size;head=0;tail=0;
}
queue::~queue()
{delete[] a;
}
bool queue::isQueueEmpty()
{return (head == tail);
}
bool queue::isQueueFull()
{return tail+1 == size
}
void queue::entryQueue(int item)
{if(isQueueFull())print("the queue is full");else{a[tail ++] = item;}
}
int queue::exitQueue()
{if(isQueueEmpty())print("the queue is empty");else{int result = a[head];head = head+1;return result;}
}
int queue::getSize()
{return size;
}

上述使用顺序数组的形式实现了队列,但是这种方式有非常大的弊端:当删除队列中的元素时,数组中head之前空间我们无法再次使用,这样就造成了极大的空间浪费。解决的方法是使用循环队列或者直接使用链式存储。

数据结构与算法-队列相关推荐

  1. 数据结构与算法---队列

    数据结构与算法-队列 1. 队列的定义: 队列(Queue )简称队,是一种操作受限制 的线性表 ,只允许在表的一端进行插入,而在表的另一端进行删除.向队列中插入元素称为入队或进队: 删除元素称为出队 ...

  2. JavaScript数据结构与算法——队列详解(下)

    接下来会借助本人另一篇文章JavaScript数据结构与算法--队列详解(上)中实现的队列类及其方法实现一个应用. 配对问题 需求分析:在一个文件中保存着一份男女混合的数据,名称前以B开头表示男士,以 ...

  3. javascript数据结构与算法---队列

    javascript数据结构与算法---队列 队列是一种列表,不同的是队列只能在队尾插入元素,在队首删除元素.队列用于存储按顺序排列的数据,先进先出,这点和栈不一样(后入先出).在栈中,最后入栈的元素 ...

  4. c++数据结构中 顺序队列的队首队尾_数据结构与算法—队列详解

    前言 栈和队列是一对好兄弟,前面我们介绍过数据结构与算法-栈详解,那么栈的机制相对简单,后入先出,就像进入一个狭小的山洞,山洞只有一个出口,只能后进先出(在外面的先出去).而队列就好比是一个隧道,后面 ...

  5. c++数据结构中 顺序队列的队首队尾_数据结构与算法—队列图文详解

    前言 栈和队列是一对好兄弟,前面我们介绍过数据结构与算法-栈详解,那么栈的机制相对简单,后入先出,就像进入一个狭小的山洞,山洞只有一个出口,只能后进先出(在外面的先出去).而队列就好比是一个隧道,后面 ...

  6. Airport Simulation (数据结构与算法 – 队列 / Queue 的应用)

    Airport Simulation 是数据结构与算法教材中用于演示Queue的一个小程序(大多数教师似乎会跳过这个练习).主程序会通过输入总的运行时间.队列里可以等待的最多飞机数量,平均每个时间单元 ...

  7. JavaScript数据结构与算法——队列详解(上)

    队列基本知识 队列是一种与列表很像的数据结构,只是队列只能在尾部插入元素,在队首删除元素.队列用于存放按顺序排列的元素,先进先出,就像食堂排队一样,后来的只能排在后面,先来的先拿饭,一种井然有序的感觉 ...

  8. 数据结构与算法 / 队列(queue)

    @time 2019-08-04 @author Ruo_Xiao 一.定义 队列是一种操作受限的线性表,只能从一端插入从另一端弹出的数据结构. 二.特性 先进者先出,后进者后出. 三.分类 1.基于 ...

  9. 数据结构与算法 | 队列

    队列 队列只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表,队列具有先进先出的特性,就如同我们排队一样,先排的就先出去. 而进行插入的一端叫做队尾,进行删除的一端叫做队头 队列可以用 ...

  10. (三)数据结构与算法-队列

    银行排队案例 队列介绍 队列是一个有序列表,可以用数组或是链表来实现 遵循先入先出原则.即:先存入队列的数据,要先取出.后存入的要后取出 数组模拟队列 队列本身是有序表,若使用数组的结构来存储队列的数 ...

最新文章

  1. Windows系统管理大师、畅销书作者William R.Stanek的又一经典力作
  2. Windows下搭建SVN傻瓜式教程
  3. Fedora再次安装手记--很爽的Wine工具
  4. 使用tab键分割的文章能快速转换成表格。( )_word排版技巧:活用Enter键提高工作效率...
  5. 强调 “范围、时间、成本、质量” 的项目经理
  6. 人口普查系统_王佐镇全面开展第七次人口普查数据采集处理系统培训暨摸底动员部署会...
  7. 深度学习之 epoch batch iteration
  8. Jenkins不同job之间传递参数
  9. Annotation基础知识
  10. 安卓基础干货(六):安卓Activity的学习
  11. c语言中find的作用,c语言find函数的用法详解
  12. python二级多少分过_计算机二级分值分配 多少分及格
  13. 学习计算机语言入门必看
  14. Java、JSP酒店客房管理系统
  15. 银行业务光凭“刷脸”真的靠谱吗
  16. 2018年的生活及工作计划
  17. 你们要的水性粘合剂乳胶漆消泡剂已经出来了
  18. EasyCVR平台接入大华EVS存储服务器,需要注意哪些事项?
  19. 单源最短路径-Dijkstra算法
  20. YOLOv5训练KAIST数据集

热门文章

  1. ssas 数据源mysql_BI之SSAS完整实战教程2 -- 开发环境介绍及多维数据集数据源准备...
  2. 什么时候你应该用JSON Web Token
  3. MySQL高级 - 锁 - InnoDB行锁 - 介绍及背景知识
  4. MySQL高级 - 应用优化
  5. 分库分表的类型和特点
  6. collection 和association 的区别?
  7. CAS单点登录 - 创建用户会话、全局门票、临时票据
  8. ClassLoader的常用方法及获取方法
  9. 给zuul网关添加过滤器
  10. Filter_细节_执行流程生命周期