69,336
社区成员
发帖
与我相关
我的任务
分享
#include<stdio.h>
//定义队列结构体
struct queue{
int front;//队头
int endline;//队尾
int data[10];//数据
};
typedef struct queue Queue;
//初始化队列
void initQueue(Queue * p);
//入队
void enQueue(Queue *pque, int data);
//出队
void deQueue(Queue *pque);
//遍历队列
void printfQueue(Queue *pque);
//数组队列只能使用一次,使用之后必须初始化后才可以继续使用
void main(){
Queue myQueue={0,6,{50,60,70,80,90,100}};
Queue *pque = &myQueue;
//插入队列
enQueue(pque,40);
enQueue(pque,30);
printfQueue(pque);
}
//初始化队列
void initQueue(Queue *pque){
pque->front = 0;
pque->endline = 0;//清空队列
}
//入队
void enQueue(Queue *pque,int data){
//判断队列是否溢出
if (pque->endline<10)
{
//判断队列是否为空
if (pque->front == pque->endline)//队头和队尾重合表明没有元素
{
//初始化队列
initQueue(pque);
}
pque->data[pque->endline] = data;
pque->endline += 1;
}
else{
return;
}
}
//出队
void deQueue(Queue *pque){
//判断队列是否为空
if (pque->front == pque->endline)
{
//队列为空
return;
}
else{
//直接弹出最后一个
printf("弹出的元素是%d\n", pque->data[pque->front]);
pque->front+= 1;
}
}
//遍历队列
void printfQueue(Queue *pque){
int i;
for (i = pque->front; i < pque->endline; i++)
{
printf("第%d门成绩为%d分\n",i+1,pque->data[i]);
}
}