【数据结构】顺序队列

队列,一种受限制的线性结构。它有一个队首和一个队尾,且只能在队尾接收新的元素,在队首输出一个新的元素。就是排队购物一样的,新来的只能呆在后面,等队伍的第一个人走了之后,第二个人就成了新的队首。
队列这种结构也只能进行队首的删除,队尾的添加,判断是否为空这三种操作。
下面是具体实现。

#include 
#include 
#include 
#define MaxSize 100
using namespace std;

typedef  int ElemType;
typedef struct LNode{
	ElemType data[MaxSize];
	int front,rear;
}SqQueue;

void InitQueue(SqQueue &Q);				//构造一个队列 
bool QueEmpty(SqQueue Q);				//判断队列是否为空 
void EnQueue(SqQueue &Q,ElemType x);	//入队,在队尾插入一个元素 
bool DeQueue(SqQueue &Q,ElemType &x);	//出队,在队首删除一个元素 


int main()
{
	int n,num;
	SqQueue Q;
	InitQueue(Q);
	cin >> n;
	while(n--){
		cin >> num;
		EnQueue(Q,num);
	}
	for(int i=0;i<5;i++)
		cout << Q.data[i] << " "; 
	return 0;
}
void InitQueue(SqQueue &Q){			//构造一个队列 
	Q.front=Q.rear=0;
	return ; 
}

bool QueEmpty(SqQueue Q){			//判断队列是否为空 
	if(Q.front==Q.rear)
		return true;
	else
		return false;
}

void EnQueue(SqQueue &Q,ElemType x){	//入队,队尾添加一个元素 
	Q.data[Q.rear]=x;
	Q.rear++;
	return ;
}

bool DeQueue(SqQueue &Q,ElemType &x){	//出队,删除队首元素 
	if(Q.front==Q.rear)
		return false;
	x=Q.data[Q.front];
	Q.front++;
	return true;
}

你可能感兴趣的:(顺序队列,数据结构)