用数组实现队列

/* Queue - Circular Array implementation in C++*/
#include<iostream>
using namespace std;
#define MAX_SIZE 101  //maximum size of the array that will store Queue. // Creating a class named Queue.
class Queue
{
private:int A[MAX_SIZE];int front, rear;
public:// Constructor - set front and rear as -1. // We are assuming that for an empty Queue, both front and rear will be -1.Queue(){front = -1; rear = -1;}// To check wheter Queue is empty or notbool IsEmpty(){return (front == -1 && rear == -1); }// To check whether Queue is full or notbool IsFull(){return (rear+1)%MAX_SIZE == front ? true : false;}// Inserts an element in queue at rear endvoid Enqueue(int x){cout<<"Enqueuing "<<x<<" \n";if(IsFull()){cout<<"Error: Queue is Full\n";return;}if (IsEmpty()){ front = rear = 0; }else{rear = (rear+1)%MAX_SIZE;}A[rear] = x;}// Removes an element in Queue from front end. void Dequeue(){cout<<"Dequeuing \n";if(IsEmpty()){cout<<"Error: Queue is Empty\n";return;}else if(front == rear ) {rear = front = -1;}else{front = (front+1)%MAX_SIZE;}}// Returns element at front of queue. int Front(){if(front == -1){cout<<"Error: cannot return front from empty queue\n";return -1; }return A[front];}/* Printing the elements in queue from front to rear. This function is only to test the code. This is not a standard function for Queue implementation. */void Print(){// Finding number of elements in queue  int count = (rear+MAX_SIZE-front)%MAX_SIZE + 1;cout<<"Queue       : ";for(int i = 0; i <count; i++){// Index of element while travesing int index = (front+i) % MAX_SIZE; circularly from frontcout<<A[index]<<" ";}cout<<"\n\n";}
};
int main()
{/*Driver Code to test the implementationPrinting the elements in Queue after each Enqueue or Dequeue */Queue Q; // creating an instance of Queue. Q.Enqueue(2);  Q.Print();  Q.Enqueue(4);  Q.Print();  Q.Enqueue(6);  Q.Print();Q.Dequeue();    Q.Print();Q.Enqueue(8);  Q.Print();
}

编程中最没用的东西是源代码,最有用的东西是算法和数据结构。

队列C++ | 用数组实现队列_1相关推荐

  1. uva 12100 Printer Queue 优先级队列模拟题 数组模拟队列

    题目很简单,给一个队列以及文件的位置,然后一个一个检查,如果第一个是优先级最高的就打印,否则放到队列后面,求所要打印的文件打印需要花费多长时间. 这里我用数组模拟队列实现,考虑到最糟糕的情况,必须把数 ...

  2. 单片机实现环形队列_稀疏数组和队列(二)

    队列的介绍 队列以一种先入先出(FIFO)的线性表,还有一种先入后出的线性表(FILO)叫做栈. 教科书上有明确的定义与描述.类似于现实中排队时的队列(队尾进,队头出),队列只在线性表两端进行操作,插 ...

  3. php环行队列实现,java数组实现队列及环形队列实现过程解析

    这篇文章主要介绍了java数组实现队列及环形队列实现过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 代码内容 ArrayQueue---用数 ...

  4. 大话数据结构 队列10:数组循环队列

    基础介绍 队列 先进先出,出列在队头,进列在队尾 数组可以做成循环队列. 循环队列的一个重要问题:判断队列是空是满? 空队列的判断比较简单:尾游标等于头游标 满队列的判断比较复杂:如果也是用尾游标等于 ...

  5. Qz学算法-数据结构篇(稀疏数组、队列)

    目录 1.稀疏(sparse array)数组 需求引入 分析问题 2.队列(queue) 1.数组模拟队列 需求引入 1.1介绍 1.2数组模拟队列 1.3思路分析 1.4代码实现 2.数组模拟环形 ...

  6. golang数据结构与算法——稀疏数组、队列和链表

    文章目录 一 稀疏数组 1.1 先看一个实际的需求 1.2 稀疏数组基本介绍 1.3 稀疏数组举例说明 1.4 把数组转换为稀疏数组实现 1.5 把稀疏数组还原为原数组 二 队列 2.1 队列的介绍 ...

  7. 队列的使用及实现队列

    队列的使用及实现 队列的概念 普通队列 Queue 双端队列 Deque 循环队列 队列的使用 插入元素 add offer 删除元素 remove poll 得到队头元素 element peek ...

  8. 基于数组实现队列(基于Java实现)

    title: 基于数组实现队列(基于Java实现) tags: 数组 队列 基于数组实现队列的原理: 基于数组实现的队列,使用两个指针,一个是head指针 ,指向的是队头:一个是tail指针,指向队尾 ...

  9. python中pos的用法_Python:数组、队列及堆栈的使用(list用法)--转

    Python编程中数组.队列及堆栈用于保存一组数据或对象的序列,元素可以是各种类型混合在一起,定义格式为[元素,元素,--,元素],用变量[位置]即可取出相应的元素,其中"位置"是 ...

最新文章

  1. rdbms mysql_RDBMS-mysql初步
  2. php7 安装zendopcache,安装PHP加速插件ZendOpcache
  3. 我们找阿里云资深技术专家李响聊了聊开源和云原生
  4. Java EE CDI依赖注入(@Inject)教程
  5. Jquery 操作select总结
  6. 计算机培训开场语,辅导班家长会主持词开场白
  7. C#开发笔记之14-如何用C#计算闰年?
  8. python为什么没有指针_Python中有指针吗?
  9. arduino lora通讯_ESP8266 LoRa网关第一步:SPI总线
  10. matlab 安装教程 2018b
  11. 扫码枪回车键条码_收银系统中扫描枪扫描条码后必须按回车键才能查询商品的解决办法...
  12. 2022年自动化专业、电气工程及其自动化专业大学生可以参加哪些专业相关的竞赛?
  13. C语言中的各种百分号都代表什么意思
  14. 记一次对PUBG吃鸡外挂病毒的反制过程
  15. 移动最快apn服务器,中国移动修改APN为CMTDS提高4G网速
  16. 光学测量精度极限—光谱共焦位移传感器的六大行业应用
  17. golang中椭圆曲线密码
  18. 噩梦的开始:动态规划之背包问题(01背包问题、完全背包问题、方案数填满型背包问题)
  19. Blender 3.2自由定制做体积云絮形状(cloud制作)
  20. HTTP错误 404.17 - Not Found IIS 7.5 请求的内容似乎是脚本,因而将无法由静态文件处理程序来处理

热门文章

  1. 当代职场成功学:越懒惰,越躺赢
  2. 一统江湖的大前端(3) DOClever——你的Postman有点Low
  3. canal mysql多节点_数据同步的终极解决方案,阿里巴巴开源的Canal框架当之无愧!!...
  4. Hadoop的RPC工作原理
  5. 红橙Darren视频笔记 动画讲解 仿58同城 加载动画
  6. 韩顺平php视频笔记70 面向对象编程的三大特征1 抽象 封装
  7. 探地雷达(GPR)的 C-scan (三维图)的绘制
  8. 版本对应关系python TensorFlow+Keras
  9. TikZ绘图示例——尺规作图: 圆内接正九边形的近似画法
  10. mac写html图片显示不出来解决方法