欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

数据结构之循环队列实现(4)

程序员文章站 2022-07-14 13:50:20
...
在这里插入代码片
#include<stdio.h>
#define MAXSIZE 10
typedef struct{ //循环队列
	int data[MAXSIZE];
	int front,rear;
}SqQueue;

void InitQueue(SqQueue &queue){
	queue.rear=queue.front=0;//rear始终指向队尾元素下一个空位置
}

int EnQueue(SqQueue &queue,int a){
	if((queue.rear+1)%MAXSIZE==queue.front){//牺牲了一个存储单元
		printf("队列满\n");
		return 0;
	}
	queue.data[queue.rear]=a;
	queue.rear=(queue.rear+1)%MAXSIZE;
	return 1;
}
bool isEmpty(SqQueue queue){
	if(queue.rear==queue.front){
		printf("队列空\n");
		return true;
	}
	else return false;
}
int DeQueue(SqQueue &queue,int a){
	if(!isEmpty(queue)){
		a=queue.data[queue.front];
		queue.front=(queue.front+1)%MAXSIZE;
		printf("%d\n",a);
		return 1;
	}	
	return 0;
}
void main(){
	SqQueue queue;
	int a;
	InitQueue(queue);
	scanf("%d",&a);
	while(a!=-1000){
		if(a==1000) //输入1000出队列
		DeQueue(queue,a);
		else
		EnQueue(queue, a);
		scanf("%d",&a);
	}
}

相关标签: 循环队列