循环队列(用顺序表来实现)
来源:互联网 发布:知乎app下载安卓 编辑:程序博客网 时间:2024/06/05 13:21
//怎样使顺序循环队列不损失一个空间,并且又能判断队列已经满了呢??
//只要多设计一个标志tag 当tag=0时表示出队, 当tag=1时表示入队
//队列为空 front==rear && tag==0
//队列为满 front==rear && tag==1
///////////////////////////////////////////////////////////head.h//////////////////////////////////////////
#include <iostream>
using namespace std;
#define queueSize 10
struct SQueue
{
char queue[queueSize];
int front , rear;
int tag;
};
///////////////////////////////////////////////////head.cpp//////////////////////////////////////////////////
#include "head.h"
void initQueue(SQueue &Q)
{
Q.front=Q.rear=0;
Q.tag=0;///////////////初始化标志为0
}
bool queueEmpty(SQueue Q)
{
if( Q.front==Q.rear && Q.tag==0 )
{
cout<<"队列为空"<<endl;
return true;
}
else
{
cout<<"队列不为空"<<endl;
return false;
}
}
bool enterQueue(SQueue &Q, char e)
{
if(Q.rear>=queueSize || (Q.front==Q.rear && Q.tag==1) )
{
cout<<"队列已满,不能进队"<<endl;
return false;
}
else
{
Q.queue[Q.rear]=e;
Q.rear++;
Q.tag=1;
return true;
}
}
void getHead(SQueue Q)
{
cout<<"第一个元素为: ";
cout<<Q.queue[Q.front]<<endl;
}
bool deleteQueue(SQueue &Q)
{
if( Q.front==Q.rear && Q.tag==0)
{
cout<<"空的队列不能进行删除"<<endl;
return false;
}
else
{
Q.front=Q.front+1;
Q.tag=0;
return true;
}
}
上面可能有错误,请多多指教!!!
- 循环队列(用顺序表来实现)
- C#实现循环顺序队列(队列)
- java队列实现(顺序队列、链式队列、循环队列)
- java队列实现(顺序队列、链式队列、循环队列)
- 线性表-顺序队列(循环队列)
- 使用顺序表实现一个循环队列
- 循环(顺序)队列存储实现
- 数组实现顺序队列、顺序循环队列
- 循环队列-顺序表
- 数据结构(C实现)------- 顺序队列(循环队列之少用一个存储空间实现) .
- 循环队列(顺序队列)
- 循环队列(顺序队列)
- 顺序队列(循环队列)
- 顺序队列(循环队列)基本操作实现 C语言
- 数据结构(C实现)------- 顺序队列(非循环队列)
- 数据结构-->(循环)队列 【队列的顺序实现】ADT
- 循环顺序队列的实现
- 循环顺序队列c++实现
- CakePHP: 使用Flickr创建定制的相册和增值服务
- WinForm 分屏 [ WinForm | Panel | 视频监控分屏 ]
- SVG动画演示贝塞尔曲线(1-4阶)绘制过程
- Oracle数据库LONG类型移植
- DataSet
- 循环队列(用顺序表来实现)
- thttpd
- Nginx内核参数相关的优化设定
- 消息机制-WSAAsyncSelect
- 计算机系统操作 操作系统概念第六版
- Running shell commands from Emacs
- 乔布斯与中国
- sqlite3
- Nginx负载均衡如何进行配置