This repository has been archived on 2024-05-05. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
UAV/yaokon/Core/Src/queue.c
2023-10-06 15:07:07 +08:00

85 lines
1.5 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/*
*@文件:queue.c
*@作者:‘你遇了我’
*@time:2022/11/13
*@联系:QQ:321640253
*@描述:
*/
//
// Created by 86186 on 2022/11/13.
//
#include "queue.h"
/*
* @简介:初始化一个空队列
* @参数void
* @返回值:初始化队列的指针
* */
void InitQuecu(SqQuecu *Q){
Q->front=Q->rear=-1;
Q->size=0;
}
// /*
// * @简介:销毁队列
// * @参数:队列指针
// * @返回值void
// * */
// void DestroyQueue(SqQuecu *Q){
// free(Q);
// }
/*
* @简介:判断队列为空
* @参数:队列指针
* @返回值:布尔值
* */
bool QueueEmpty(SqQuecu *Q){
if(Q->size==0)return true;
else return false;
}
/*
* @简介:判断队列为满
* @参数:队列指针
* @返回值:布尔值
* */
bool QueueFull(SqQuecu *Q){
if(Q->size==Maxsize)return true;
else return false;
}
/*
* @简介:进队
* @参数:队列指针
* 进队元素
* @返回值:布尔值
* */
bool enQueue(SqQuecu *Q,quecuElemtype e){
if(QueueFull(Q))return false;
if(Q->rear==Maxsize-1)Q->rear=-1;
Q->rear++;
Q->data[Q->rear]=e;
Q->size++;
return true;
}
quecuElemtype deQueue(SqQuecu *Q){
if(QueueEmpty(Q))return NULL;
quecuElemtype e=Q->data[Q->front];
if(Q->front==Maxsize)Q->front=0;
Q->front++;
Q->size--;
return e;
}
void DispQuecu(SqQuecu *Q){
int i;
for(i=0;i<Q->rear-Q->front;i++){
printf("%d",Q->data[i+Q->front+1]);
printf(",");
}
printf("\n");
}