层次遍历 显示结果总是崩溃。!
											
程序代码:#include<stdio.h>
#include<stdlib.h>
typedef int Elemtype;
typedef struct BiTNode
{
    Elemtype data;
    struct BiTNode  *lchild,*rchild;
}BiTNode,*BiTree;
typedef struct QNode
{
    BiTree  data;
    struct QNode *next;
}QNode,*QueuePtr;
typedef struct
{
    QueuePtr front;
    QueuePtr rear;
}LinkQueue;
int Init_Queue(LinkQueue &Q)
{
    Q.front=Q.rear=(QueuePtr)malloc(sizeof(QNode));
    if(!Q.front)
        return 0;
    Q.front->next=NULL;
    return 1;
}
int EnQueue(LinkQueue &Q,BiTree T)
{
    QueuePtr p;
    p=(QueuePtr)malloc(sizeof(QNode));
    if(!p)
        return 0;
    p->data=T;
    p->next=NULL;
    Q.rear->next=p;
    Q.rear=p;
    return 1;
}
int DeQueue(LinkQueue Q,BiTree &T)
{
    QueuePtr p;
    p=(QueuePtr)malloc(sizeof(QNode));
    if(Q.front==Q.rear)
        return 0;
    p=Q.front->next;
    T=p->data;
    Q.front->next=p->next;
    if(Q.rear==p)
    {
        Q.rear=Q.front;
    }
    free(p);
    return 1;
}
int DestroyQueue(LinkQueue &Q)
{
    while(Q.front)
    {
        Q.rear=Q.front->next;
        free(Q.front);
        Q.front=Q.rear;
    }
    return 1;
}
int QueueEmpty(LinkQueue &Q)
{
    if(Q.front==Q.rear)
        return 1;
    else
        return 0;
}
int creat_BiTree(BiTree &T)
{
    int ch;
    ch=getchar();
    if(ch=='#')
        T=NULL;
    else
    {
        T=(BiTree)malloc(sizeof(BiTNode));
        if(!T)
            return 0;
        T->data=ch;
        creat_BiTree(T->lchild);
        creat_BiTree(T->rchild);
    }
    return 1;
}
int HierachyBiTree(BiTree &T)
{
    LinkQueue Q;
    BiTree p;
    Init_Queue(Q);
    if(T==NULL)
        return 0;
    p=T;
    printf("%c ",T->data);
    if(p->lchild)
        EnQueue(Q,p->lchild);
    if(p->rchild)
        EnQueue(Q,p->rchild);
    while(!QueueEmpty(Q))
    {
        DeQueue(Q,p);
        printf("%c ",p->data);
        if(p->lchild)
            EnQueue(Q,p->lchild);
        if(p->rchild)
        {
            EnQueue(Q,p->rchild);
        }
    }
    DestroyQueue(Q);
    putchar(10);
    return 1;
}
层次遍历 ,总是结果不正确,总是崩溃。。主函数只是简单的调用,就一句话。不知道哪里出错了。看了半天没看出来,期待大神的指点!										
					
	


											
	    

	


