完整代码

#include<iostream>
#include<cstring>
#define Maxsize 101
using namespace std;
struct queue
{int front;//指向头元素 int rear;//指向尾元素 int arr[Maxsize];
};
int size(queue *lsy)//返回queue中的元素数量
{return (lsy->rear+Maxsize-lsy->front)%Maxsize;
}
bool empty(queue *lsy)//判断队列是否为空
{if(size(lsy)==0)return true;elsereturn false;
}
void init(queue *lsy)//初始化队列
{lsy->front=0;lsy->rear=0;
}
int back(queue *lsy)//返回最后一个元素
{if(empty(lsy)){cout<<"队列为空"<<endl;return 0;}return lsy->arr[lsy->rear-1];
}
int front(queue *lsy)//返回第一个元素
{if(empty(lsy)){cout<<"队列为空"<<endl;return 0;}return lsy->arr[lsy->front];
}void push(queue *lsy,int n)//插入新元素(在队列尾部插入)
{if(sizeof(lsy->arr)==Maxsize-1){cout<<"队列已满"<<endl;}else{lsy->arr[lsy->rear]=n;lsy->rear=(lsy->rear+1)%Maxsize;}
}
void pop(queue *lsy)//删除元素(从队列头部删除)
{if(empty(lsy))cout<<"队列已经为空"<<endl;elselsy->front=(lsy->front+1)%Maxsize;
}int main()
{queue *lsy;lsy=new queue;init(lsy);push(lsy,1);push(lsy,2);push(lsy,3);push(lsy,4);push(lsy,5);push(lsy,6);int len = size(lsy);cout <<"最后一个元素:"<< back(lsy) << endl;cout <<"第一个元素:"<< front(lsy) <<endl;for (int i = 0; i < len; i++){cout << front(lsy) <<' ';pop(lsy);}return 0;
}

C++ 队列的创建和基本操作相关推荐

  1. 队列的定义及其基本操作

    文章目录 1.队列的定义 2.顺序队列及其操作 2.1 队列的顺序存储结构 2.2 顺序队列上的操作 (1)创建队列 (2)插入 (3)删除 3.循环队列及其操作 3.1 循环队列的存储结构 3.2 ...

  2. 二叉树的创建和基本操作(详解)

    文章目录 二叉树的创建(使用先序遍历) 递归实现二叉树的遍历: 先序遍历: 中序遍历: 后续遍历: 一些二叉树基本操作: 求树的深度: 求树的结点个数: 查找特定值的结点: 查找特定值结点的父结点: ...

  3. Python数据类型中的字典-创建和基本操作

    Python当中字典的创建和基本操作 本章 含有 字典定义 及操作 l  字典定义 l  基本操作 l  常用方法 列表也是常用的数据类型-列表是最灵活的一个,甚至可以当成一个小的数据库,用来存储数据 ...

  4. 消息队列控制灯代码_代码实现RabbitMQ死信队列的创建

    ‍ ‍前言:‍ ‍ 之前有写过死信队列的使用场景以及通过管控台创建死信.这次就通过代码实现死信队列的创建,同时也分享一下RabbitMQ封装的类. 准备: 1. 先准备一个死信队列(最后用来消费)的参 ...

  5. 【Java 并发编程】线程池机制 ( 线程池执行任务细节分析 | 线程池执行 execute 源码分析 | 先创建核心线程 | 再放入阻塞队列 | 最后创建非核心线程 )

    文章目录 一.线程池执行任务细节分析 二.线程池执行 execute 源码分析 一.线程池执行任务细节分析 线程池执行细节分析 : 核心线程数 101010 , 最大小成熟 202020 , 非核心线 ...

  6. linux内核多队列,Linux Kernel 中 Workqueue 使用系统默认队列和创建队列的方法

    关于workqueue,我们还是有很多话要说. 想必大家对workqueue相关的函数(schedule_work .queue_work.INIT_WORK.create_singlethread_ ...

  7. java中堆栈的基本操作_玩儿转队列和栈的基本操作及其应用:Java 版

    队列的基本操作 队列入队出队实现 队列是种先进先出的数据结构. 队列的基本操作主要是入队和出队. 数据从队尾进入队列,从队首出队列. 下面来写一个简单的队列: public class MyQueue ...

  8. RTX5 | 消息队列01 - 创建消息队列

    文章目录 一.前言 二.实验的目的 三.API 3.1.osMessageQueueId_t 3.2.osMessageQueueAttr_t 3.3.osMessageQueueNew 四.代码 4 ...

  9. android自定义队列,Android 消息机制(一)消息队列的创建与循环的开始 Looper与MessageQueue...

    写在前面 本文基于Android 7.1.1 (API 25)的源码分析编写 与之前的触摸事件分发机制分析的文章一样,Android系统机制的分析中关键的一环就是事件消息的处理.之前也说过,Andro ...

最新文章

  1. McAfee可能要收购NitroSecurity?
  2. .NET Core程序中使用User Secrets存储敏感数据
  3. C#中 .resx文件
  4. python cookie使用_Python使用cookielib模块操作cookie的实例教程
  5. iOS初级开发学习笔记:APP生命周期的学习总结
  6. mysql语言的特点不包括_SQL语言具有两种使用方式,分别称为交互式SQL和__________...
  7. yum离线安装rpm包
  8. java不解压获取压缩包(zip,rar)文件列表或文本文件内容
  9. tps在区块链是什么意思_区块链的TPS是什么
  10. @Resource详解-代码示例
  11. 新版Win10开机任务栏卡死的原因和解决方法
  12. 软装和硬装又有哪些不同?
  13. GETWA_NOT_ASSIGNED
  14. stm32时钟问题简单介绍
  15. 【UOJ#386】【UNR#3】鸽子固定器(贪心)
  16. SAP ERP数据表清单
  17. QQ2013登录界面动画变成静态图片的解决方法
  18. 这五个【计算机专业】就业吃香,毕业生需求量大!
  19. 《软件项目风险的主要来源以及如何规范》
  20. 手把手之如何写一个抢课脚本

热门文章

  1. 周志华点评机器学习会议
  2. [2022-10-06]神经网络与深度学习第3章-前馈神经网络(part2)
  3. 阻容感基础08:电感特性原理(2)- 电磁感应定律
  4. 笔记本显示网络电缆被拔出怎么解决_win7系统笔记本解决本地连接提示网络电缆被拔出的解决方法...
  5. 敏捷软件开发方法论_什么是敏捷方法论? 现代软件开发讲解
  6. H3C云计算、网络售前专家考试认证题库
  7. Flink 异步IO时 java.util.concurrent.TimeoutException: Async function call has timed out.
  8. WeWork副总裁王海勋: 人工智能如何改变物理空间
  9. appcan mysql_AppCan-BBS for Discuz!X2.02.5 v2.2 手机论坛客户端
  10. 工资就像大姨妈,一个月一次,一周左右就没了