#define QUEUE_SIZE 20
typedef struct queue{
unsigned int array[QUEUE_SIZE]; /* 队列数组 */
unsigned int front; /* 队列首指针 */
unsigned int rear; /* 队列尾指针 */
unsigned int counter; /* 队列元素计数 */
} ARRAY_QUEUE_S;
/* 数组下标小为前,大为后 0到1后移一位 1到0前移1位*/
/*******************************************************************************
* @brief 初始化队列
* @param _queue:需要初始化的队列的地址
* @retval
* @author
******************************************************************************/
void init_queue(ARRAY_QUEUE_S *_queue)
{
_queue->front = 0;
_queue->rear = 0;
_queue->counter = 0;
printf("init a queue successfully!\n");
}
/*******************************************************************************
* @brief first in first out 在队列尾端插入新元素
* @param _queue: 需要进行入队列操作的队列的地址
* _element:入队列的元素
* @retval 0 队列满 1操作成功
* @author
******************************************************************************/
int in_queue_fifo(ARRAY_QUEUE_S *_queue, int _element)
{
if (_queue->counter >= QUEUE_SIZE) {
printf("the queue is full!\n");
return 0;
}
/* 在队列尾端插入新元素,队尾指针往前后一位,计数加一 */
_queue->array[_queue->rear] = _element
队列fifo和lifo C语言数组实现
最新推荐文章于 2021-09-02 15:48:03 发布
本文介绍了如何使用C语言数组实现先进先出(FIFO)和后进先出(LIFO)的数据结构。通过详细讲解队列的基本操作,包括入队、出队,展示了数组在构建这两种数据结构时的应用,为理解和实现此类算法提供了基础。
摘要由CSDN通过智能技术生成