找出error,树和二叉树

#include <stdio.h>
#include <stdlib.h>
#define MAX 20
#define NULL 0
typedef  char TElemType;
typedef  int Status;
typedef struct BiTNode{
    TElemType data;
    struct BiTNode *lchild,*rchild;
}BiTNode,*BiTree;
Status CreateBiTree(BiTree T){
  char ch;
  ch=getchar();
  if (ch=='#') (T)=NULL;     / #代表空指针
/
  else {(*T)=(BiTree) malloc(sizeof(BiTNode));/*申请结点   */
(*T)->data=ch;                        /*生成根结点  */
CreateBiTree(&(*T)->lchild) ;         /*构造左子树  */
CreateBiTree(&(*T)->rchild) ;         /*构造右子树  */
      }
  return 1;
}
void PreOrder(BiTree T){
     if (T) { printf("%2c",T->data);    /访问根结点,此处简化为输出根结点的数据值/
 PreOrder(T->lchild);      /先序遍历左子树/
 PreOrder(T->rchild);      /先序遍历右子树/
     }
}
void LevleOrder(BiTree T){
/层次遍历二叉树T,从第一层开始,每层从左到右/
BiTree Queue[MAX],b;  /用一维数组表示队列,front和rear分别表示队首和队尾指针/
  int front,rear;
   front=rear=0;
   if (T) /若树非空/
     {Queue[rear++]=T;  /根结点入队列/
      while (front!=rear){   /当队列非空/
b=Queue[front++];    /队首元素出队列,并访问这个结点/
     printf("%2c",b->data);
       if (b->lchild!=NULL) Queue[rear++]=b->lchild; /左子树非空,则入队列/
   if (b->rchild!=NULL) Queue[rear++]=b->rchild; /右子树非空,则入队列/
       }
     }
}//LevelOrder
int depth(BiTree T){  /求二叉树的深度/
 int dep1,dep2;
 if (T==NULL) return 0;
  else {dep1=depth(T->lchild);
        dep2=depth(T->rchild);
       return dep1>dep2?dep1+1:dep2+1;
}
 }//depth
main()
{
  BiTree T=NULL;
  printf("\nCreate a Binary Tree\n");
  CreateBiTree(&T);  /建立一棵二叉树T/
  printf("\nThe preorder is:\n");
  PreOrder(T);       /先序遍历二叉树/
  printf("\nThe level order is:\n");
  LevleOrder(T);     /层次遍历二叉树/
printf("\nThe depth is:%d\n",depth(T));
}

请把程序代码格式化,重新发布,问题描述一下。

重新用代码块格式化一下吧。另外有什么错误现象也给出来吧