首页 > 其他 > 详细

循环队列的实现(顺序表)

时间:2020-11-17 22:25:53      阅读:35      评论:0      收藏:0      [点我收藏+]
#include<iostream>
#define MAXQSIZE 100
using namespace std;
typedef int QElemType;
typedef struct 
{
	QElemType *base;
	int front;
	int rear;
}SqQueue;

void InitQueue(SqQueue &Q)//循环队列的初始化
{
	Q.base = new QElemType[MAXQSIZE];
	if(!Q.base)exit(OVERFLOW);
	Q.front = Q.rear = 0;
}

int QueueLenght(SqQueue Q)//求循环队列的长度
{
	return (Q.rear - Q.front + MAXQSIZE)%MAXQSIZE;
}

void EnQueue(SqQueue &Q,QElemType &e)//循环队列的入队
{
	if((Q.rear + 1) % MAXQSIZE == Q.front) return;
	Q.base[Q.rear] = e;
	Q.rear = (Q.rear + 1) % MAXQSIZE;
}

void DeQueue(SqQueue &Q,QElemType &e)//循环队列的出队
{
	if(Q.front == Q.rear)return ;
	e = Q.base[Q.front];
	Q.front = (Q.front + 1) % MAXQSIZE;
}

QElemType GetHead(SqQueue Q)//取循环队列的头元素
{
	if(Q.front != Q.rear)return Q.base[Q.front];
}

循环队列的实现(顺序表)

原文:https://www.cnblogs.com/hhjjy/p/13996357.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!