头文件设计 Header file design

#include <stdio.h>
#include <stdlib.h>
typedef char BiElemType;
typedef struct BiTNode {
BiElemType c;
struct BiTNode* lchild;
struct BiTNode* rchild;
}BiTNode, * BiTree;
typedef struct tag {
BiTree p;
struct tag* pnext;
}tag_t, * ptag_t;
typedef BiTree ElemType;
typedef struct {
ElemType data[50];
int top;
}SqStack;
void Init_stack(SqStack& S);
bool Stack_empty(SqStack S);
bool Push(SqStack& S, ElemType x);
bool GetTop(SqStack S, ElemType& m);
bool Pop(SqStack& S, ElemType& x);
typedef struct LinkNode {
ElemType data;
struct LinkNode* next;
}LinkNode;
typedef struct LinkQueue {
LinkNode* front, * rear;
}LinkQueue;
void Init_queue(LinkQueue& Q);
bool Is_empty(LinkQueue Q);
void EnQueue(LinkQueue& Q, ElemType x);
bool DeQueue(LinkQueue& Q, ElemType& x);