希望大伙指导下,万分感激,为什么会没有结果呢

希望大家指导下,万分感激,为什么会没有结果呢?
/*问题描述:按照先序输入给定一棵二叉树,编程实现该二叉树的层序遍历。
要求:1、选择合适方法和存储结构创建二叉树。
      2、层次遍历输出该二叉树。
      3、设计算法实现求该二叉树的高度。
数据输入:第一行为先序序列,其中 # 表示孩子为空。
如:
ABC##DE#G##F###
结果输出:第一行为层次遍历序列,第二行为树的高度。
ABCDEFG
*/
#include<iostream.h>
#include "stdlib.h"
#define ok 1
#define overflow -2
#define error -1
#define maxsize 30
typedef char elemtypedef ;
typedef struct node
{elemtypedef data;
 struct node *lchild;
 struct node*rchild;
}BTNode,* BiTree ;

int CreateBiTree(BiTree &T)
{//按先序次序输入二叉数中节点的值,#表示空树,构造二叉连表表示的二叉数T;//
 char t;
cin>>t;
 if(t=='#')
 T=NULL;
 else
 {if(!(T=(BTNode*)malloc(sizeof(BTNode))))
  exit(overflow);
  else
  T->data=t;//
  CreateBiTree(T->lchild);
  CreateBiTree(T->rchild);
 }
 return ok;
}
void LevelOreder(BTNode *b)
{BTNode *p;
 BTNode *qu[maxsize];
 int front,rear;
 front=rear=0;
 rear++;
 qu[rear]=b;
 while(front!=rear)
 {front=(front+1)%maxsize;
  p=qu[front];
  cout<<p->data;
  if(p->lchild!=NULL)
  {rear=(rear+1)%maxsize;
   qu[rear]=p->lchild;
  }
  if(p->rchild!=NULL)
  {rear=(rear+1)%maxsize;
   qu[rear]=p->rchild;
  }
 }
}









void main()
{cout<<"请输入先序序列,#表示空树";
 BTNode *tree;
 CreateBiTree(tree);
 cout<<"输出层次遍历序列:";
 LevelOreder(tree);
}
遍历 二叉树

------解决方案--------------------
先学会排版,再学debugger。