队列的话,应该是和堆栈一起讲的,但是吧,最近时间紧,所以没时间很详细的一起介绍。相对于堆栈,队列(本文以链队列为存储结构)的实现更容易一点,而且不涉及什么高级算法。下面直接给存储结构和实现算法。
一、存储结构和定义函数原型(usr_queue.h)
#ifndef USR_QUEUE_H_INCLUDED
#define USR_QUEUE_H_INCLUDED
/*//usr_bintree.h中有同样定义
#define OK 1
#define TRUE 1
#define ERROR 0
#define FALSE 0
*/
//-------单链队列--队列的链式存储结构-------
typedef struct QNode
{
BiTNode *pbtnode; //指向二叉树的结点指针,定义在usr_bintree.h
struct QNode *next;
}QNode;
typedef struct
{
QNode *head; //队头指针
QNode *tail; //队尾指针
int queuesize; //队列长度
}LinkQueue;
//-------链队列的基本操作函数原型-------
int InitQueue(LinkQueue **Q);
//构造一个空的队列
int ClearQueue(LinkQueue *Q);
//将队列Q清空
int DestoryQueue(LinkQueue *Q);
//销毁队列,队列将不再存在
int QueueEmpt