使用单链表就行了。为了实现链式队列, 我先去实现单链表。single_linked_list.h 是我实现的单链表的头文件, 查看我的单链表实现文章,了解细节。
这个模块我用在了二叉树上的层序遍历.
下面的函数已经测试过了
/********************************************************************************
* Copyright(c) 2019-20xx
* All right resered.
*
* @file chain_queue.c
* @author hongsmallgod
* @version V1.0.1
* @data 2019-9-10 10:31:28
* @brief 链式队列源文件
********************************************************************************/
#include <stdlib.h>
#include "chain_queue.h"
static int get_queue_elem_num(queue *);
static int head(queue *, element *);
static int tail(queue *, element *);
static int enqueue(queue *, element);
static int dequeue(queue *, element *);
static int full(queue *);
static int empty(queue *);
/*
** function : create_queue
** author : hongsmallgod
** brief : 创建一个队列
** argument : void
** return : @q: 队列指针
*/
queue *create_queue(void)
{
queue *q= (queue*)malloc(