C语言实现的顺序循环队列

c语言顺序循环队列:

初始化

Push操作

Pop操作

主函数

#include<stdio.h>
#include<stdlib.h>
#define ml 4 //初始化队列为四个存储单元 
//定义顺序存储环队列
typedef int DataType;

 typedef struct Queue
 {
 	DataType *data;
 	int front,rear;
 } Queue;

//初始化
 void InitQueue(Queue *q) 
 {
 	q->data=(DataType*)malloc(ml*sizeof(DataType));
      
 	if (!q->data)
 	{
 		printf("环队列初始化失败!
");
 		exit(1);
	 }
	q->front=q->rear=0;
	
	printf("环队列初始化成功!
");
 
 }

 //Push操作
 void Push(Queue *q,DataType d)
 {
 	if ((q->rear+1)%ml==q->front)
	 {
	 	printf("队列已满!
");
	 	return;
	  } 
	  
	q->data[q->rear]=d;
	q->rear++;
	printf("Push的元素为:%d
",d);
 	
 } 

 //Pop操作
 DataType Pop(Queue *q) 
 {
 	DataType d;
 	if (q->rear==q->front)
 	{
 		printf("队列为空!
");
 		return;
	 }
	d=q->data[q->front];
	q->front++;
	printf("Pop出的元素为:%d
",d); 
 	return d;
 }

 void main()
 {
 	int i;
 	DataType d;
 	Queue q;
 	InitQueue(&q);
 	for (i=0;i<4;i++)
 	{
 		printf("请输入要入队的元素(整数):
");
 		scanf("%d",&d);
 			Push(&q,d);
	 }
	 
   for (i=0;i<4;i++)
 	{
 		Pop(&q);
	 }
 	
 }
原文地址:https://www.cnblogs.com/glory-yl/p/14747735.html