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);
}
}