大家帮我看看这"棵"树怎么了
运行赋值AB##C## 回车后出现 对话框 说是内存不能为读之类的问题 我该怎么办啊 求教了~~程序代码:
#include<stdio.h> #include<stdlib.h> #define MAX_TREE_SIZE 15 #define NULL 0 typedef struct BitNode{ //节点结构 char data; struct BitNode *lchirld,*rchirld;//左孩子,右孩子 }BitNode,*Bitree; char ch; int CreateBtree(Bitree T) { ch=getchar(); if(ch=='#') {T=NULL;} //空 else{ if(!(T=(Bitree)malloc(sizeof(BitNode)))) exit(0);//建立根节点 T->data=ch; //访问根节 CreateBtree(T->lchirld);//建立左子树 printf("aaa"); CreateBtree(T->rchirld);//建立右子树 printf("dddd"); }//else printf("ccc"); return 0; }//CreateBtree void OrderTralversepre(Bitree T) { // 前序遍历二叉树 if(T==0) return ; else{ printf("%c\n",T->data); OrderTralversepre(T->lchirld); //前序遍历左子树 OrderTralversepre(T->rchirld); //前序遍历右子树 }//else }//OrderTralversepre void DistroyBitree(Bitree T) {//销毁二叉树 if(T==0) return ; else {DistroyBitree(T->lchirld);//销毁左子树 DistroyBitree(T->rchirld);//销毁右子树 }//else free(T); //释放节点 }//DistroyBitree void main() { BitNode T; printf("建立一个二叉树\n"); CreateBtree(&T); printf("\n"); OrderTralversepre(&T);//前序遍历二叉树 printf("\n"); DistroyBitree(&T);//销毁二叉树 printf("success"); }//main()
[ 本帖最后由 st_win 于 2010-9-21 16:38 编辑 ]