树结点的结构定义:
typedef struct BiTNode{
TElemType data;
struct BiTNode *lchild,*rchild;
}BiTNode,*BiTree;
先序构造链式存储二叉树算法:
Status CreateBiTree(BiTree &T){
scanf(&ch);
if(ch==‘ ’) T=NULL;//与下面的if判断共同构成递归出口
else{
if(!T=(BiTNode *)malloc(sizeof(BiTNode)))
exit(OVERFLOW);//内存不够时退出
T-> data=ch; //将所输入字符赋值给当前结点
CreatBiTree(T->lchild);
CreatBiTree(T->rchild);
}
return OK;
}
参考:严版数据结构教材131页算法6.3
ps:和网上各种其他版本的构造方法相比,可以看出这的确是一种简洁优雅的构造方式。