/*commen.h 操作二叉树的头文件*/
#include "stdlib.h"
#include "stdio.h"
#include "iostream.h"
#include "string.h"
# define TRUE 1
# define FALSE 0
# define NULL 0
# define TElemType char
# define ElemType BiTree
# define MAXSIZE 30
typedef int Status;
//typedef BiTree ElemType;
/*二叉树的二叉链表存储结构*/
typedef struct BiTNode{
TElemType data;
struct BiTNode *lchild,*rchild;//左右孩子指针
}BiTNode,*BiTree;
/*链栈,记录二叉树结点*/
typedef struct node{
ElemType data;
struct node *next;
}StackNode, *LinkStack;
/*链栈,记录运算符*/
typedef struct node1{
TElemType data;
struct node1 *next;
}OpStack,*LinkOpStack;
typedef struct Node
{//结点类型
ElemType data;
struct Node *next;
}QNode, *QueueLink;
typedef struct
{//链表类型
QueueLink front;//队头指针
QueueLink rear;//队尾指针
}LinkQueue;
typedef enum {Visit,Travel} TaskType;// Travel == 1:遍历, // Visit == 0:访问
typedef struct
{//栈的元素类型
ElemType ptr;// 指向根结点的指针
TaskType task;//任务类型
}TaskNode;
typedef struct Node1
{//链栈类型
TaskNode data;
struct Node1 *next;
}TNode,*LinkTaskStack;
//基本操作
Status InitQueue(LinkQueue &L);//构造一个空队列
Status QueueEmpty(LinkQueue L);//判断队列是否为空
Status ClearQueue(LinkQueue &L);//清空队列
Status EnQueue(LinkQueue &L,ElemType e);//进队列
Status DeQueue(LinkQueue &L,ElemType &e);//出队列
Status GetHead(LinkQueue L,ElemType &e);//得到ElemType &e队首元素
int QueueLength(LinkQueue L);//返回队列长度
Status DestroyQueue(LinkQueue &L);//销毁队列
#include "stdlib.h"
#include "stdio.h"
#include "iostream.h"
#include "string.h"
# define TRUE 1
# define FALSE 0
# define NULL 0
# define TElemType char
# define ElemType BiTree
# define MAXSIZE 30
typedef int Status;
//typedef BiTree ElemType;
/*二叉树的二叉链表存储结构*/
typedef struct BiTNode{
TElemType data;
struct BiTNode *lchild,*rchild;//左右孩子指针
}BiTNode,*BiTree;
/*链栈,记录二叉树结点*/
typedef struct node{
ElemType data;
struct node *next;
}StackNode, *LinkStack;
/*链栈,记录运算符*/
typedef struct node1{
TElemType data;
struct node1 *next;
}OpStack,*LinkOpStack;
typedef struct Node
{//结点类型
ElemType data;
struct Node *next;
}QNode, *QueueLink;
typedef struct
{//链表类型
QueueLink front;//队头指针
QueueLink rear;//队尾指针
}LinkQueue;
typedef enum {Visit,Travel} TaskType;// Travel == 1:遍历, // Visit == 0:访问
typedef struct
{//栈的元素类型
ElemType ptr;// 指向根结点的指针
TaskType task;//任务类型
}TaskNode;
typedef struct Node1
{//链栈类型
TaskNode data;
struct Node1 *next;
}TNode,*LinkTaskStack;
//基本操作
Status InitQueue(LinkQueue &L);//构造一个空队列
Status QueueEmpty(LinkQueue L);//判断队列是否为空
Status ClearQueue(LinkQueue &L);//清空队列
Status EnQueue(LinkQueue &L,ElemType e);//进队列
Status DeQueue(LinkQueue &L,ElemType &e);//出队列
Status GetHead(LinkQueue L,ElemType &e);//得到ElemType &e队首元素
int QueueLength(LinkQueue L);//返回队列长度
Status DestroyQueue(LinkQueue &L);//销毁队列