循环队列--忘记分配空间和如何用tag判断队空队满
2024-09-02 11:03:21
#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 ;
}
最新文章
- 【转】段错误调试神器 - Core Dump详解
- C#Color对象的使用介绍及颜色对照表
- MAT内存问题分析定位
- Java异步回调
- 从一个乘法来分析C语言
- Spring ioc 原理
- Android的Drawable
- 利用宏定义令iOS项目当中的NSLog不执行
- CF 476 div2 C
- 011一对一 唯一外键关联映射_单向(one-to-one)
- Python之旅.第四章.模块与包.总结(未完待遇)
- 主成分分析PCA详解
- 算法工程师想进一步提高竞争力?向TensorFlow开源社区贡献你的代码吧
- [C++]PAT乙级1009. 说反话 (17/20)
- 2017-2018-2 20155309南皓芯 Exp6 信息搜集与漏洞扫描
- (文档)流媒体资源 Streaming Assets
- skopt超参数优化实例
- day85 ModuleForm Form组件
- 草稿:SCADA全局底层框架架构
- linux设置容器(中间件)开机自启