栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

循环队列的基本操作——C语言

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

循环队列的基本操作——C语言


#include  
#include 

#define MaxSize 10 // 队列最大容量

typedef int DataType;	//队列中的元素类型
typedef struct Queue{
	DataType Queue[MaxSize];
	int front;
	int rear;
}Queue;

//初始化队列
void InitQueue(Queue *Q){
	Q->front=Q->rear=0;
} 

//判断队列是否为空
int IsEmpty(Queue *Q){
	if(Q->front== Q->rear){
		printf("队列为空!n");
		return 1;
	}
	return 0;
} 

// 判断队列是否为满
int IsFull(Queue *Q){
	//尾指针+1追上队头指针,队列已满
	if((Q->rear +1)%MaxSize == Q->front){
		printf("队列已满!n");
		return 1;
	} 
	return 0;
} 

// 入队操作
int EnQueue(Queue *Q,DataType e){
	if(IsFull(Q)){
		printf("队列已满,不能入队!n");
		return  0;
	}
	Q->Queue[Q->rear] = e;
	Q->rear = (Q->rear+1)%MaxSize;	//重新设置队尾指针 
} 

// 出队操作
void DeQueue(Queue *Q,DataType *e){
	if(IsEmpty(Q)){
		printf("队列为空!n");	
	}
	*e = Q->Queue[Q->front];
	Q->front = (Q->front+1)%MaxSize;	//重新设置队头指针 
} 


// 清空队列
void CleaQueue(Queue *Q){
	Q->front = Q->rear = 0;
} 

// 打印队列元素
void PrintQueue(Queue *Q){
	if(IsEmpty(Q)){
		printf("队列为空!n");
	}
	else{
		int i = Q->front;
		if(Q->front < Q->rear){
			for(i;irear;i++){
				printf("%-3d",Q->Queue[i]);
			}
		} 
		else{
			for(i;irear+MaxSize;i++){
				printf("%-3d",Q->Queue[i]);
			}
		}
	}
	printf("n");
} 


int main(){
	Queue Q;
	DataType e;
	int n;
	printf("第一次使用必须初始化!n");
	do{
		printf("n-----主菜单-----n");
		printf(" 1 初始化循环队列:n");
		printf(" 2 进队一个元素:n");
		printf(" 3 出队一个元素:n");
		printf(" 4 打印队列元素:n");
		printf(" 5 结束应用:n");
		printf("n------------------n");
		scanf("%d",&n);
		switch(n){
			case 1:
				InitQueue(&Q);
				break;
			case 2:
				printf("请输入要插入的元素:e = ");
				scanf("%d",&e);
				EnQueue(&Q,e);
				PrintQueue(&Q);
				break;
			case 3:
				DeQueue(&Q,&e);
				printf("出队的元素 :e =  %d",e);
				printf(""); 
				break;	
			case 4:
				PrintQueue(&Q);
				break;
		}
	}while(n<=4); 
	return 0;
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/330653.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号