循环队列--忘记分配空间和如何用tag判断队空队满
#include<iostream>
#define maxsize 100
using namespace std;
struct CLqueue
{
int *Q;
int front;
int rear;
int tag;
};
typedef struct CLqueue *CL;
void Init(CL &q)
{
q = new CLqueue;
q->Q=new int[maxsize];
q->tag = ;//队空
q->rear = q->front=;
}
bool Judge(CL &q)
{
if (q->tag)
return true;
else
return false; }
void Enqueue(CL &q,int a)
{
if (Judge(q))
return;
q->Q[q->rear] = a;
q->rear = (q->rear + ) % maxsize;
if ((q->rear + ) % maxsize == q->front)
q->tag = ; }
void Dlqueue(CL &q)
{
if (!Judge(q))
return;
q->front = (q->front + ) % maxsize;
if ((q->front + ) % maxsize == q->rear)
q->tag = ;
} int main()
{
int n;
CL q;
while (cin >> n && n != )
{
Init(q);
for (int i= ; i < n; i++)
{
int a;
cin >> a;
Enqueue(q, a);
}
for (int i = q->front; i < q->rear-; i++)
{
cout << q->Q[i] << " ";
}
cout<< q->Q[q->rear-] << endl;
}
return ;
}
#include<iostream>
#define maxsize 100
using namespace std;
struct CLqueue
{
int *Q;
int front;
int rear;
int tag;
};
typedef struct CLqueue *CL;
void Init(CL &q)
{
q = new CLqueue;
q->Q=new int[maxsize];
q->tag = ;//队空
q->rear = q->front=;
}
bool Judge(CL &q)
{
if (q->tag)
return true;
else
return false; }
void Enqueue(CL &q,int a)
{
if (Judge(q))
return;
q->Q[q->rear] = a;
q->rear = (q->rear + ) % maxsize;
if ((q->rear + 1) % maxsize == q->front)
q->tag = ; }
void Dlqueue(CL &q)
{
if (!Judge(q))
return;
q->front = (q->front + ) % maxsize;
if ((q->front + 1) % maxsize == q->rear)
q->tag = ;
} int main()
{
int n;
CL q;
while (cin >> n && n != )
{
Init(q);
for (int i= ; i < n; i++)
{
int a;
cin >> a;
Enqueue(q, a);
}
for (int i = q->front; i < q->rear-; i++)
{
cout << q->Q[i] << " ";
}
cout<< q->Q[q->rear-] << endl;
}
return ;
}
循环队列--忘记分配空间和如何用tag判断队空队满的更多相关文章
- javascript实现数据结构与算法系列:队列 -- 链队列和循环队列实现及示例
1 队列的基本概念 队列(Queue):也是运算受限的线性表.是一种先进先出(First In First Out ,简称FIFO)的线性表.只允许在表的一端进行插入,而在另一端进行删除. 队首(fr ...
- C语言实现循环队列
今日在处理数据存储的问题中,数据占用的空间较大,在询问之下,提及循环队列. 没有学习过的我,想想就是头大,只能慢慢从网上找资料,一个字母一个字母的敲,最后,还是慢慢的对队列有了一些理解 对于循环队列有 ...
- 【Java】 大话数据结构(7) 循环队列和链队列
本文根据<大话数据结构>一书,实现了Java版的循环队列.链队列. 队列:只允许在一端进行插入操作,而在另一端进行删除操作的线性表. 1.循环队列 队列的顺序储存结构:用数组存储队列,引入 ...
- C ~ 链式队列与循环队列
此处的链式与循环队列可以应用于BFS和树的层序遍历.下面是对其结构和基本操作的程序描述. 1.循环队列 解决循环队列的队空和队满的方法: [1].增加一个参数count,用来记录数组中当前 ...
- 循环队列 & 栈的共用空间
循环队列 非常好的数据结构,充分利用率空间,可以用于网络端存储socket消息! /*************************************** 作者: 未闻花语 版本: v1.0 ...
- [置顶] ※数据结构※→☆线性表结构(queue)☆============循环队列 顺序存储结构(queue circular sequence)(十)
循环队列 为充分利用向量空间,克服"假溢出"现象的方法是:将向量空间想象为一个首尾相接的圆环,并称这种向量为循环向量.存储在其中的队列称为循环队列(Circular Queue). ...
- Java实现一个简单的循环队列
在某些时候,我们不能被要求像数组一样可以使用索引随机访问,而是需要被限制顺序处理业务,今天介绍一种先进先出(FIFO)的线性数据结构:队列, 当然,还有后进先出(LIFO)的处理方式,即为栈(后续有时 ...
- C语言数据结构-循环队列的实现-初始化、销毁、清空、长度、队列头元素、插入、删除、显示操作
1.数据结构-循环队列的实现-C语言 #define MAXSIZE 100 //循环队列的存储结构 typedef struct { int* base; //基地址 int _front; //头 ...
- <数据结构系列3>队列的实现与变形(循环队列)
数据结构第三课了,今天我们再介绍一种很常见的线性表——队列 就像它的名字,队列这种数据结构就如同生活中的排队一样,队首出队,队尾进队.以下一段是百度百科中对队列的解释: 队列是一种特殊的线性表,特殊之 ...
随机推荐
- java方法中使用js的alert。
out.println("<script type=\"text/javascript\">"); out.println("alert( ...
- ACM-数细胞
题目描述:数细胞 一矩形阵列由数字0到9组成,数字1到9代表细胞,细胞的定义为沿细胞数字上下左右还是细胞数字则为同一细胞,求给定矩形阵列的细胞个数.编程需要用到的队列及其相关函数已经实现,你只需要完成 ...
- hdu4632 Palindrome subsequence 回文子序列个数 区间dp
Palindrome subsequence Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/65535 K (Java/ ...
- (五)selenuim和phantonJs处理网页动态加载数据的爬取
selenuim和phantonJs处理网页动态加载数据的爬取 一 图片懒加载 自己理解------就是在打开一个页面的时候,图片数量特别多,图片加载会增加服务器的压力,所以我们在这个时候,就会用到- ...
- P2057 [SHOI2007]善意的投票 / [JLOI2010]冠军调查
P2057 [SHOI2007]善意的投票 / [JLOI2010]冠军调查 拿来练网络流的qwq 思路:如果i不同意,连边(i,t,1),否则连边(s,i,1).好朋友x,y间连边(x,y,1)(y ...
- 堆栈 pop push
1.什么是堆栈 1.1堆栈 堆栈可以看作程序的心脏 所有重要的数据都会在这个里面体现(比如运算一道算术题,虽然还没算出最终答案,但是你在算出最终结果前的一些过程值可以放进堆栈) 堆栈这块内存比较特殊, ...
- sqlcook sql经典实例 emp dept 创建语句
创建表语句 create table dept( deptno int primary key, dname varchar(30), loc varchar(30) ); create table ...
- [GXYCTF2019]BabySQli
0x00 知识点 emmm这道题目就是脑洞得大,能猜后端源码 0x01 解题 查看源码: base32,base64解码得到 select * from user where username = ' ...
- mac安装浏览器同步测试工具
1.安装node.js (1)打开终端,输入以下命令安装Homebrew ruby -e “$(curl -fsSL https://raw.githubusercontent.com/Homebre ...
- SpringBoot项目 org.springframework.boot.context.embedded.EmbeddedServletContainerException: Unable to start embedded Jetty servlet container报错
SpringBoot项目启动报错 ERROR 2172 --- [ main] o.s.boot.SpringApplication : Application startup failed org. ...