循环队列--忘记分配空间和如何用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>队列的实现与变形(循环队列)
数据结构第三课了,今天我们再介绍一种很常见的线性表——队列 就像它的名字,队列这种数据结构就如同生活中的排队一样,队首出队,队尾进队.以下一段是百度百科中对队列的解释: 队列是一种特殊的线性表,特殊之 ...
随机推荐
- [APIO2012]派遣 可并堆
Background 在一个忍者的帮派里,一些忍者们被选中派遣给顾客,然后依据自己的工作获取报偿. Description 在这个帮派里,有一名忍者被称之为Master.除了Master以外,每名忍者 ...
- Spark 内存管理
Spark 内存管理 Spark 执行应用程序时, 会启动 Driver 和 Executor 两种 JVM 进程 Driver 负责创建 SparkContext 上下文, 提交任务, task的分 ...
- Linux学习《第三章重定向,管道符和环境变量》
- python --- request返回值乱码问题
1.分析 a)<HTTP权威指南>里第16章国际化里提到,如果HTTP响应中Content-Type字段没有指定charset,则默认页面是'ISO-8859-1'编码.一般现在页面编码都 ...
- UVA - 10384 The Wall Pusher(推门游戏)(IDA*)
题意:从起点出发,可向东南西北4个方向走,如果前面没有墙则可走:如果前面只有一堵墙,则可将墙向前推一格,其余情况不可推动,且不能推动游戏区域边界上的墙.问走出迷宫的最少步数,输出任意一个移动序列. 分 ...
- mac安装vue没有使用权限不足
➜ ~ vue init webpack frontend ⠋ downloading template /usr/local/lib/node_modules/vue-cli/node_modul ...
- 并发 ping
参考 [root@RS2 ~]# cat .sh #!/bin/bash # --, by wwy #------------------------------------------------- ...
- .chm无法打开问题(windows)
.chm无法打开问题,尤其是重做系统之后 C:\Windows 确保有hh.exehhctrl.ocxC:\Windows\SysWOW64 确保有itss.dll 否则百度下载hh.exehhctr ...
- ng-repeat动态生成的DOM如何获取宽度(封装好的方法)
define(['custom/bootstrapApp'],function(app){ app.filter('getTabWidth',function(){ return function(a ...
- C#高级编程(第9版) 第10章 集合 笔记
话说 虽然敲过好多代码, 但除了C++,一直没正眼瞧过其它语言.(没办法 谁叫C++既有oop又能自由控制内存呢) 今天 看公司老项目的src,c#的,linq+Dictionary的用法有感.所以找 ...