1. 程式人生 > 其它 >順序儲存的佇列

順序儲存的佇列

#include <iostream>
#define MAXSIZE 4
using namespace std;
typedef struct Queue{
	int data[MAXSIZE];
	int front,rear;
	int tag;
}Queue;
void InitQueue(Queue &A)
{
A.front=0;
A.rear=0;
A.tag=0;	
}
int EmptyFullQueue(Queue &A)//用最後一次是進隊還是出隊操作判斷佇列是滿還是空
{
	if (A.front==A.rear)
	{
		if (A.tag==0)
return 0;//0代表隊列為空 if (A.tag==1) return 1;//1代表隊列已滿 } return 2;//2代表隊列既不空也不滿 } bool EnQueue(Queue &A,int x) { if (EmptyFullQueue(A)==1) return false; A.data[A.rear]=x; A.rear=(A.rear+1)%MAXSIZE; A.tag=1; return true; } bool PopQueue(Queue &A,int &x) { if (EmptyFullQueue(A)==0) return
false; x=A.data[(--A.rear+MAXSIZE)%MAXSIZE]; A.rear=(A.rear+MAXSIZE)%MAXSIZE; A.tag=0; return true; } int main(int argc, char** argv) { Queue A; int a; InitQueue(A); EnQueue(A,1); EnQueue(A,2); EnQueue(A,3); EnQueue(A,4); PopQueue(A,a); cout<<EmptyFullQueue(A)<<endl; cout<<
a; return 0; }