//简单的队列 #include<stdio.h>
#include<stdlib.h> #define datatype int
#define N 10 //定义队列结构体
struct queue{
int front;//队头
int endline;//队尾
datatype data[N];//数据
}; typedef struct queue Queue; Queue myQueue = { , , { } }; //初始化队列
void initQueue(Queue * p);
//入队
void enQueue(Queue *pque, datatype data);
//出队
void deQueue(Queue *pque);
//遍历队列
void printfQueue(Queue *pque); //数组队列只能使用一次,使用之后必须初始化后才可以继续使用 void main(){
Queue *pque = (Queue *)malloc(sizeof(Queue));
initQueue(pque);
//插入队列
enQueue(pque,);
enQueue(pque,);
enQueue(pque,);
enQueue(pque,);
enQueue(pque,);
//打印队列
printfQueue(pque);
//出队
deQueue(pque);
//打印队列
printfQueue(pque);
deQueue(pque);
//打印队列
printfQueue(pque);
system("pause");
} //初始化队列
void initQueue(Queue *pque){
pque->front = pque->endline = ;//清空队列
} //入队
void enQueue(Queue *pque,datatype data){
//判断队列是否溢出
if (pque->endline<N)
{
//判断队列是否为空
if (pque->front == pque->endline)//队头和队尾重合表明没有元素
{
//初始化队列
initQueue(pque);
}
pque->data[pque->endline] = data;
pque->endline += ; }
else{
return;
} } //出队
void deQueue(Queue *pque){
//判断队列是否为空
if (pque->front == pque->endline)
{
//队列为空
return;
}
else{
//直接弹出最后一个
printf("弹出的元素是%d\n", pque->data[pque->front]);
pque->front+= ;
}
} //遍历队列
void printfQueue(Queue *pque){
for (int i = pque->front; i < pque->endline; i++)
{
printf("%d\n", pque->data[i]);
}
}