环形队列的基本操作

环形队列的基本操作_第1张图片

  • 实现环形队列的基本操作
  • 代码;
#include
using namespace std;
#define Max 50
#include
typedef char ElemType;
//类型定义
typedef struct
{
	ElemType data[Max]; 
	int front;   
	int count;   
}QueueType;

//初始化队列
void InitQueue(QueueType *&q)
{
	q = (QueueType *)malloc(sizeof(QueueType));
	q->front =0;
	q->count =0;
}

//判断队列是否为空
void  EmptyQueue(QueueType *q)
{
	if (q->count==0)
		cout<< "队列为空!" << endl;
	else
		cout << "队列不为空!" << endl;
}

//元素进队
int enQueue(QueueType *&q, ElemType x)
{
	int rear;
	if (q->count ==Max) //队满溢出
		return 0;
	else
	{
		rear=(q->front+q->count)%Max;
		rear=(rear+1)%Max;
		q->data[rear]=x;
		q->count++;
		return 1;
	}

}

//元素出队
int deQueue(QueueType *&q,ElemType &x)
{
	if(q->count==0)
		return 0;
	else
	{
		q->front=(q->front+1)%Max;
		x=q->data[q->front];
		q->count--; 
	}
}

//输出队列的元素个数
void LenghtQueue(QueueType *q)
{
	cout << q->count << endl;
}

//释放队列
void DestroyQueue(QueueType *q)
{
	free(q);
}

//主函数测试
int main()
{
	QueueType *q;
	ElemType x;
	
	cout<<"初始化队列!";
	InitQueue(q);
	cout<

你可能感兴趣的:(数据结构)