Dev c++程序出现运行错误 显示 “process exited with return value 322122572

#include
#include
typedef struct BiTNode{
char data;
struct BiTNode *lchild, *rchild; //左右孩子指针
}BiTNode, *BiTree;
//二叉树的二叉链表存储表示

int CreateBiTree(BiTree*T){ //先序建立二叉树
char ch;
printf("请输入字符\n");
scanf("%c",&ch);

if(ch=' '){
T=NULL;
}
else if(!(*T=(BiTree)malloc(sizeof(BiTNode))))
return 0;
(*T)->data=ch;
CreateBiTree(&(*T)->lchild);
CreateBiTree(&(*T)->rchild);
return 1;
printf("%c",&ch);
}

int PreOrderTraverse(BiTree T){
if(T){
printf("%c",&T->data);
PreOrderTraverse(T->lchild);
PreOrderTraverse(T->rchild);

}return 1;
} //先序遍历

int InOrderTraverse(BiTree T){
if(T){
InOrderTraverse(T->lchild);
printf("%c",&T->data);
InOrderTraverse(T->rchild);
}
return 1;
} //中序遍历

int PostOrderTraverse(BiTree T){
if(T){
PostOrderTraverse(T->lchild);
PostOrderTraverse(T->rchild);
printf("%c",&T->data);
}
return 1;

} //后序遍历

int main(){
BiTree T;

int choose;
while(1){
printf("*********菜单********\n");
printf("* 1、先序建立 \n");
printf("
2、先序遍历 \n");
printf("
3、中序遍历 \n");
printf("
4、后序遍历 \n");
printf("
0、退出 \n");
printf("
********************\n");
scanf("%d",&choose);
if(choose==0){
break;
}
switch(choose){
case 1:
CreateBiTree(&T);
break;
case 2:
PreOrderTraverse(T);
break;
case 3:
InOrderTraverse(T);
break;
case 4:
PostOrderTraverse(T);
break;
}
}

}

错误比较多,给你完整改了一遍,如果问题解决,请点我回答右边的采纳,谢谢

// Q703224.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"

#include "stdio.h"
#include "stdlib.h"

typedef struct BiTNode{
char data;
struct BiTNode *lchild, *rchild; //左右孩子指针 
}BiTNode, *BiTree;
//二叉树的二叉链表存储表示

int CreateBiTree(BiTree*T){ //先序建立二叉树 
char ch;
printf("请输入字符");
fflush(stdin);
scanf("%c",&ch);

if(ch==' '){
*T=NULL;
return 0;
}
else 
{
    *T=(BiTNode *)malloc(sizeof(BiTNode));
    if (!(*T))
        return 0;
    (*T)->data=ch;
    CreateBiTree(&(*T)->lchild);
    CreateBiTree(&(*T)->rchild);
    return 1;
    printf("%c",&ch);
}
}

int PreOrderTraverse(BiTree T){
if(T){
printf("%c",T->data);
PreOrderTraverse(T->lchild);
PreOrderTraverse(T->rchild);

}return 1;
} //先序遍历

int InOrderTraverse(BiTree T){
if(T){
InOrderTraverse(T->lchild);
printf("%c",T->data);
InOrderTraverse(T->rchild);
}
return 1; 
} //中序遍历

int PostOrderTraverse(BiTree T){
if(T){
PostOrderTraverse(T->lchild);
PostOrderTraverse(T->rchild);
printf("%c",T->data);
}
return 1;

} //后序遍历

int main(){
BiTree T;

int choose;
while(1){
printf("*********菜单********\n");
printf(" 1、先序建立 \n");
printf(" 2、先序遍历 \n");
printf(" 3、中序遍历 \n");
printf(" 4、后序遍历 \n");
printf(" 0、退出 \n");
printf("********************\n");
scanf("%d",&choose);
if(choose==0){
break;
}
switch(choose){
case 1:
CreateBiTree(&T);
break;
case 2:
PreOrderTraverse(T);
printf("\n");
break;
case 3:
InOrderTraverse(T);
printf("\n");
break;
case 4:
PostOrderTraverse(T);
printf("\n");
break;
}
}

}


图片说明