C++ 队列的创建和基本操作
完整代码
#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.队列的定义 2.顺序队列及其操作 2.1 队列的顺序存储结构 2.2 顺序队列上的操作 (1)创建队列 (2)插入 (3)删除 3.循环队列及其操作 3.1 循环队列的存储结构 3.2 ...
- 二叉树的创建和基本操作(详解)
文章目录 二叉树的创建(使用先序遍历) 递归实现二叉树的遍历: 先序遍历: 中序遍历: 后续遍历: 一些二叉树基本操作: 求树的深度: 求树的结点个数: 查找特定值的结点: 查找特定值结点的父结点: ...
- Python数据类型中的字典-创建和基本操作
Python当中字典的创建和基本操作 本章 含有 字典定义 及操作 l 字典定义 l 基本操作 l 常用方法 列表也是常用的数据类型-列表是最灵活的一个,甚至可以当成一个小的数据库,用来存储数据 ...
- 消息队列控制灯代码_代码实现RabbitMQ死信队列的创建
前言: 之前有写过死信队列的使用场景以及通过管控台创建死信.这次就通过代码实现死信队列的创建,同时也分享一下RabbitMQ封装的类. 准备: 1. 先准备一个死信队列(最后用来消费)的参 ...
- 【Java 并发编程】线程池机制 ( 线程池执行任务细节分析 | 线程池执行 execute 源码分析 | 先创建核心线程 | 再放入阻塞队列 | 最后创建非核心线程 )
文章目录 一.线程池执行任务细节分析 二.线程池执行 execute 源码分析 一.线程池执行任务细节分析 线程池执行细节分析 : 核心线程数 101010 , 最大小成熟 202020 , 非核心线 ...
- linux内核多队列,Linux Kernel 中 Workqueue 使用系统默认队列和创建队列的方法
关于workqueue,我们还是有很多话要说. 想必大家对workqueue相关的函数(schedule_work .queue_work.INIT_WORK.create_singlethread_ ...
- java中堆栈的基本操作_玩儿转队列和栈的基本操作及其应用:Java 版
队列的基本操作 队列入队出队实现 队列是种先进先出的数据结构. 队列的基本操作主要是入队和出队. 数据从队尾进入队列,从队首出队列. 下面来写一个简单的队列: public class MyQueue ...
- RTX5 | 消息队列01 - 创建消息队列
文章目录 一.前言 二.实验的目的 三.API 3.1.osMessageQueueId_t 3.2.osMessageQueueAttr_t 3.3.osMessageQueueNew 四.代码 4 ...
- android自定义队列,Android 消息机制(一)消息队列的创建与循环的开始 Looper与MessageQueue...
写在前面 本文基于Android 7.1.1 (API 25)的源码分析编写 与之前的触摸事件分发机制分析的文章一样,Android系统机制的分析中关键的一环就是事件消息的处理.之前也说过,Andro ...
最新文章
- McAfee可能要收购NitroSecurity?
- .NET Core程序中使用User Secrets存储敏感数据
- C#中 .resx文件
- python cookie使用_Python使用cookielib模块操作cookie的实例教程
- iOS初级开发学习笔记:APP生命周期的学习总结
- mysql语言的特点不包括_SQL语言具有两种使用方式,分别称为交互式SQL和__________...
- yum离线安装rpm包
- java不解压获取压缩包(zip,rar)文件列表或文本文件内容
- tps在区块链是什么意思_区块链的TPS是什么
- @Resource详解-代码示例
- 新版Win10开机任务栏卡死的原因和解决方法
- 软装和硬装又有哪些不同?
- GETWA_NOT_ASSIGNED
- stm32时钟问题简单介绍
- 【UOJ#386】【UNR#3】鸽子固定器(贪心)
- SAP ERP数据表清单
- QQ2013登录界面动画变成静态图片的解决方法
- 这五个【计算机专业】就业吃香,毕业生需求量大!
- 《软件项目风险的主要来源以及如何规范》
- 手把手之如何写一个抢课脚本
热门文章
- 周志华点评机器学习会议
- [2022-10-06]神经网络与深度学习第3章-前馈神经网络(part2)
- 阻容感基础08:电感特性原理(2)- 电磁感应定律
- 笔记本显示网络电缆被拔出怎么解决_win7系统笔记本解决本地连接提示网络电缆被拔出的解决方法...
- 敏捷软件开发方法论_什么是敏捷方法论? 现代软件开发讲解
- H3C云计算、网络售前专家考试认证题库
- Flink 异步IO时 java.util.concurrent.TimeoutException: Async function call has timed out.
- WeWork副总裁王海勋: 人工智能如何改变物理空间
- appcan mysql_AppCan-BBS for Discuz!X2.02.5 v2.2 手机论坛客户端
- 工资就像大姨妈,一个月一次,一周左右就没了