二叉树基本操作问题。

#include"stdio.h"
#include<stdlib.h>
#include<malloc.h>
#define TElemType char
typedef struct BiTNode{
	TElemType data;
	struct BiTNode *lchild,*rchild;
}BiTNode,*BiTree;
Status CreateBiTree(BiTree &T);
void Exchange(BiTree &bt);
void PreOrder(BiTNode &T);
void InOrder(BiTNode &T);
void Jundge(BiTNode &T);
//二叉链表定义
Status CreateBiTree(BiTree &T)
{
	TElemType ch;
	scanf("%c",&ch);
	if(ch=='#')
		T=NULL;
	else
	{
		if(!(T=(BiTNode*)malloc(sizeof(BiTNode))))
			exit(OVERFLOW);
		T->data=ch;
		CreateBiTree(T->lchild);
		CreateBiTree(T->rchild);
	}
	return 0;
}
//建立存储结构
void Exchange(BiTree &bt)
{
	BiTree temp;
		if(bt)
	{
		temp=bt->lchild;
		bt->lchild=bt->rchlid;
		bt->rchild=temp;
		Exchange(bt->lchild);
		Exchange(bt->rchild);
	}
}
//交换各个节点的左右子树


int main()
{
    BiTNode* T=(BiTNode*)malloc(sizeof(BiTNode));
    T=CreateBiTree(T);
	Jundge(T);//交换前
    Exchange(bt);
    Jundge(T);//交换后
    return 0;
}

void Jundge(BiTNode &T){
    printf("---------------\n");
    PreOrder(T);
    printf("\n");
    InOrder(T);
    printf("\n");
}

void PreOrder(BiTNode &T){
    if(T==NULL){
        return 0;
    }
    printf("%c",T->data);
    PreOrder(T->lchild);
    PreOrder(T->rchild);
}
//先序输出
void InOrder(BiTNode &T){
    if(T==NULL){
        return 0;
    }
    InOrder(T->lchild);
    printf("%c",T->data);
    InOrder(T->rchild);
}
//中序输出

错误:
Compiling...
Cpp1.cpp
C:\Users\Administrator\Desktop\Cpp1.cpp(9) : error C2146: syntax error : missing ';' before identifier 'CreateBiTree'
C:\Users\Administrator\Desktop\Cpp1.cpp(9) : error C2501: 'Status' : missing storage-class or type specifiers
C:\Users\Administrator\Desktop\Cpp1.cpp(9) : fatal error C1004: unexpected end of file found
Error executing cl.exe.

Cpp1.obj - 3 error(s), 0 warning(s)
求解决方法
是头文件的问题吗?
VC++6.0编译环境

根据错误提示,编译器没有找到 'Status'类型。

你这代码是复制别人的吧,都不全!