c++实现循环队列
#include <iostream>
#include<stdio.h>
#include<stdlib.h> using namespace std;
int len=;// the len of the que
typedef struct que{
int *qbase;
int fr;
int tr;
}ques;
bool isempty(ques *ptr)
{
if(ptr->fr==ptr->tr)
{
return true;
}
return false; }
bool isfull(ques *ptr)
{
if((ptr->tr+)%len==ptr->fr)
{
return true;
}
return false;
}
void initque(ques *ptr)
{
ptr->qbase=(int *)malloc(sizeof(int)*len);
//不判断内存是否申请失败了哈。。。
ptr->fr=ptr->tr=;
}
void enque(ques *ptr,int val)
{
if(isfull(ptr))
{
cout<<"满了,填不进去了"<<endl;
}
else{ ptr->qbase[ptr->tr]=val;
ptr->tr=(ptr->tr+)%len;
cout<<"en que ok"<<endl;
} }
void dque(ques *ptr)
{
if(isempty(ptr))
{
cout<<"队列空了"<<endl;
}
else{
ptr->qbase[ptr->fr]=;
ptr->fr=(ptr->fr+)%len;
} }
void printque(ques *q)
{
if(isempty(q))
{
cout<<"空队列"<<endl;
}
else{
int i=q->fr;
while(i!=q->tr)
{
cout<<q->qbase[i]<<" "<<endl;
i=(i+)%len;
}
}
}
int main()
{
ques q={NULL,,};//表示一个队列 cout<<isfull(&q)<<endl;
cout<<isempty(&q)<<endl;
initque(&q);
enque(&q,);
enque(&q,);
enque(&q,);
enque(&q,);
dque(&q);
printque(&q);
cout << "Hello world!" << endl;
return ;
}
c++实现循环队列的更多相关文章
- C++数组实现的循环队列
#include<iostream> #include <string> /* 功能:数组实现的循环队列,C++实现,学习参考 */ using namespace std; ...
- C ~ 链式队列与循环队列
此处的链式与循环队列可以应用于BFS和树的层序遍历.下面是对其结构和基本操作的程序描述. 1.循环队列 解决循环队列的队空和队满的方法: [1].增加一个参数count,用来记录数组中当前 ...
- 数据结构算法C语言实现(十二)--- 3.4循环队列&队列的顺序表示和实现
一.简述 空队列的处理方法:1.另设一个标志位以区别队列是空还是满:2.少用一个元素空间,约定以队列头指针在队尾指针下一位置上作为队列呈满的状态的标志. 二.头文件 //3_4_part1.h /** ...
- 使用 JavaScript 实现基本队列、优先队列和循环队列
1.基本队列的实现 基本队列的方法中,包含了 ①向队列(尾部)中添加元素(enqueue).②(从队列头部)删除元素(dequeue).③查看队列头部的元素(front).④查看队列是否为空(isEm ...
- Atitit.提升软件稳定性---基于数据库实现的持久化 循环队列 环形队列
Atitit.提升软件稳定性---基于数据库实现的持久化 循环队列 环形队列 1. 前言::选型(马) 1 2. 实现java.util.queue接口 1 3. 当前指针的2个实现方式 1 1.1 ...
- 循环队列+堆优化dijkstra最短路 BZOJ 4152: [AMPPZ2014]The Captain
循环队列基础知识 1.循环队列需要几个参数来确定 循环队列需要2个参数,front和rear 2.循环队列各个参数的含义 (1)队列初始化时,front和rear值都为零: (2)当队列不为空时,fr ...
- 数据结构Java实现07----队列:顺序队列&顺序循环队列、链式队列、顺序优先队列
一.队列的概念: 队列(简称作队,Queue)也是一种特殊的线性表,队列的数据元素以及数据元素间的逻辑关系和线性表完全相同,其差别是线性表允许在任意位置插入和删除,而队列只允许在其一端进行插入操作在其 ...
- javascript实现数据结构与算法系列:队列 -- 链队列和循环队列实现及示例
1 队列的基本概念 队列(Queue):也是运算受限的线性表.是一种先进先出(First In First Out ,简称FIFO)的线性表.只允许在表的一端进行插入,而在另一端进行删除. 队首(fr ...
- 《Java数据结构与算法》笔记-CH4-5不带计数字段的循环队列
第四章涉及三种数据存储类型:栈,队列,优先级队列 1.概括:他们比数组和其他数据存储结构更为抽象,主要通过接口对栈,队列和优先级队列进行定义.这些 接口表明通过他们可以完成的操作,而他们的主要实现机制 ...
- 《Java数据结构与算法》笔记-CH4-4循环队列
/** * 循环队列 */ class Queue { private int maxSize; private long[] queue; private int front; private in ...
随机推荐
- Cmake 编译opengl开源库glfw工程及使用
使用的是cmake gui进行编译的,路径输入好之后,点configure配置vs版本,这里是vs2013版本,然后如果画面出现红色的 需要再点击一下 Generate 然后直接点open proje ...
- Java基础之用记事本编辑java代码运行,并且打成jar包后运行
使用记事本写java代码 1.在d盘新建一个记事本,名字叫做zhanzhuang.java,会询问不可用,是否继续,点击是 2.在里面编辑就如下内容,注意文件的名字要和 class 后面的名字相对应 ...
- django 之Paginator
Django自身提供了一些类来实现管理分页,数据被分在不同的页面中,并带有“上一页/下一页”标签.这个类叫做Pagination,其定义位于 django/core/paginator.py 中. p ...
- webpack 引用vconsole
1.npm install -vconsole --save-dev 2.npm install -vconsele-webpack-plugin --save-dev 3.webpack.base. ...
- Java相关文章
servlet/filter/listener/interceptor区别与联系 web.xml配置详解 在Eclipse中使用JUnit4进行单元测试(初级篇) 单点登录原理与简单实现 spring ...
- JSFL 禁止脚本运行时间太长的警告
fl.showIdleMessage(false);
- java 中 Integer 传参方式的问题
Java本身都是值传递式的调用,对于对象传递的是地址值.给地址值重新赋值等于重新指向,不会影响外层. 而且这里Integer对象也有特殊性.其实现上可能类似 class Integer{ final ...
- Data URI scheme - 数据的uri模式
----------------------------------------------------------------------------------------------- Data ...
- UILabel的一些属性
1.0 lineBreakMode 1.1.0 NSLineBreakByWordWrapping = 0, 以字符为显示单位显示,后面部分省略不显示 NSLineBreakByCharWrapp ...
- google image
google图片抓取 google图片是base64加密的,而且base64后的信息放在script信息里面 import pymysql from lxml import etree import ...