二叉树的建立
假设虚结点输入时以空格字符表示,相应的构造算法为:void CreateBinTree (BinTree *T)
{ //构造二叉链表。T是指向根指针的指针,故修改*T就修改了实参(根指针)本身
char ch;
if((ch=getchar())=='') *T=NULL; //读人空格,将相应指针置空
else{ //读人非空格
*T=(BinTNode *)malloc(sizeof(BinTNode)); //生成结点
(*T)->data=ch;
CreateBinTree(&(*T)->lchild); //构造左子树
CreateBinTree(&(*T)->rchild); //构造右子树
}
}
疑问:
(1)什么时候构造左子树,左子树的左子树,左子树的右子树?
(2)什么时候构造右子树,右子树的左子树,右子树的右子树?