#include #include #include #include #define queuesize 5 typedef struct //定义结构体 { char name[20]; //定义一个长度为 20 的字符串,用来表示姓名 char sex; //定义一个 char 变量 sex,用来表示性别,规定m 表示男性,f 表示女性 }person_type; typedef struct //定义循环队列结构体队列 { person_type *qBase; //储存空间基址 int front; //头指针,若队列不空,指向队列头元素 int rear; //尾指针,若队列不空,指向队列尾元素的下一个位置 }cir_queue; void init_queue(cir_queue *q) //初始化循环队列 { q->qBase =(person_type *)malloc(sizeof(person_type)*queuesize); //动态创建储存空间基址 if(
q->qBase ) //创建失败,退出程序
{ printf("动态创建失败,程序终止
"); exit(-1); } q->front=q->rear=0; } /* void traverse_queue(cir_queue *q) //遍历输出循环队列元素 { int i=q->front ; while(i
= q->rear )//当头指针与尾指针相等时结束 while 循环 { printf("%s\n",q->qBase[i]
name );//输出元素的名字 i=(i+1)%queuesize; //解决假溢出问题 } } */ bool full_queue(cir_queue *q) //判断循环队列是否为满 {//当尾指针的下一个位置等于头指针时,队列为满 // 为