循环队列--忘记分配空间和如何用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>队列的实现与变形(循环队列)
		
数据结构第三课了,今天我们再介绍一种很常见的线性表——队列 就像它的名字,队列这种数据结构就如同生活中的排队一样,队首出队,队尾进队.以下一段是百度百科中对队列的解释: 队列是一种特殊的线性表,特殊之 ...
 
随机推荐
- 实验吧-隐写-FIVE1、so beautiful so white(文件头修改)
			
FIVE1 下载图片,kali下foremost恢复文件,将得到的图片用Winhex打开进行观察,发现最后面有一段貌似是代码的东西. LS0uLi4gIC4tICAuLi4uLiAgLS0uLi4gI ...
 - webpack知识点散记
			
1.今天学习webpack ,刚开头就碰到了钉子,因为现在都是4+的版本,用以前的老命令不好使,如下例子及解决办法 不好用: webpack3的 打包文件 webpack a.js b.j ...
 - 现在购买5G“商用手机”值不值呢?是花冤枉钱还是提前享受?
			
刚刚发布的"安卓最强机皇"华为Mate 20系列依然没有支持5G,只是在收割最后的4G红利.相比之下,即将发布的小米MIX 3,看起来亮点还是颇多的.除了滑盖摄像头.屏占比更高的全 ...
 - C语言预处理理论-宏定义2
			
宏定义21.带参宏和带参函数的区别(1)宏定义是在预处理期间处理的,而函数是在编译期间处理的.这个区别带来的实质差异是:宏定义最终是在调用宏的地方把宏体原地展开,而函数是在调用函数处跳转到函数中去执行 ...
 - Day2-T1
			
原题目 Describe:贪心,左边和右边中选字典序小的 code: #include<bits/stdc++.h> using namespace std; int n,step,hea ...
 - ROS常用命令或经常碰到的问题
			
本篇博客会随时更新. 一.常用命令 1.添加环境变量 gedit ~/.bashrc 2.ubuntu系统监视器 gnome-system-monitor 二.问题 1.sudo apt-get up ...
 - 【STM32H7教程】第50章  STM32H7的LCD控制器LTDC基础知识和HAL库API
			
完整教程下载地址:http://www.armbbs.cn/forum.php?mod=viewthread&tid=86980 第50章 STM32H7的LCD控制器LTDC基础 ...
 - JAVAEE 和项目开发(第四课:HTTP的响应格式和响应状态码)
			
HTTP 协议之响应 响应格式的结构: 响应行(状态行):HTTP 版本.状态码.状态消息 响应头:消息报头,客户端使用的附加信息 空行:响应头和响应实体之间的,必须的. 响应实体:正文,服务器返回给 ...
 - bestphp's revenge
			
0x00 知识点 1利用PHP原生类来构造POP链 本题没有可以利用的类,没有可以利用的类就找不到POP链所以只能考虑PHP原生类 我们先来解释一下什么是POP链 POP:面向属性编程 在二进制利用时 ...
 - 使用Object类为实例定义方法和属性
			
1.1 可以使用 Object 类直接定义个实例,并且为该对象赋属性和方法,例如: var person_1 = { nickName:"xiaowu", age:28, show ...