#include <stdio.h>
#include <stdbool.h>
#define SIZE 6
/********** 队列结构 **********/
typedef struct Queue{
int data[SIZE];
int head;
int tail;
}queue;
/********** 初始化队列 **********/
void InitQueue(queue *q){
q->head = 0;
q->tail = 0;
}
/********** 判断队列是否已满 **********/
bool IsFull(queue *q){
if(q->head%SIZE == (q->tail+1)%SIZE)
return true;
else
return false;
}
/********** 判断队列是否为空 **********/
bool IsEmpty(queue *q){
if(q->head == q->tail)
return true;
else
return false;
}
/********** 入队 **********/
bool EnQueue(queue *q, int val){
if(IsFull(q)){
printf("队列已满!\n");
return false;
}
q->data[q->tail] = val;
q->tail = (q->tail+1)%SIZE;
return true;
}
/********** 出队 **********/
bool DeQueue(queue *q, int *val){
if(IsEmpty(q)){
printf("队列已空!\n");
return false;
}
*val = q->data[q->head];
q->head = (q->head+1)%SIZE;
return true;
}
/********** 遍历所有元素 **********/
void Display(queue *q){
int i = q->head;
while(i != q->tail){
printf("| %d |\n", q->data[i]);
i = (i+1)%SIZE;
}
printf("\n");
}
循环队列(C语言)
最新推荐文章于 2021-12-02 23:21:47 发布