队列用链式实现,需要两个结构体,一个结构体是形成队列的框架,即一个队头指针和一个队尾指针,另外一个结构体存储实在数据的数据结构体,包含数据域和指针域,指针域指向下一个数据结构体,将他们串联起来,形成一个链表,而框架的作用是我们增添和访问(进队列和出队列)这些一个一个链表单元的一个入口。初始化后的链队列的第一个节点是头结点,头结点没有实在的数据域,指针域也为空,当然你可以向数据域里添加数据,但更多的作用是作为一个头部带领后来的数据单元,更方便直观地使用链队列。
#include <stdio.h>
#include <stdlib.h>
#define OVERFLOW -1
#define OK 1
#define TRUE 1
#define FALSE 0
#define ERROR -1
typedef int Status;
typedef int ElemType;
typedef struct Node{
ElemType data;
struct Node *next;
}Node,*QNode;
typedef struct {
QNode rear;