发布网友
共2个回答
热心网友
如输入ABCD#
是不能建立一个完整的二叉树的,
代码中以字符'#'判断是否是空结点,有N个结点就会有N+1个空结点。
从代码中可以看出是先序历遍(根-左-右),进行输入的。
如果想得到二叉树:
A
/ \
B C
/ \
D E
就要输入:ABD##E##C##
就是:
A
/ \
B C
/ \ / \
D E # #
/ \ / \
# # # #
热心网友
输入ABCD#,在这个二叉树算法中,B是A左子树,C是B的左子树,D是C的左子树,输入#后,表示D没有左子树,于是程序跳到CreateBitTree(&((*T)->rchile)) ; 这一步,开始创建每个结点的右子树,顺序以创建结点时的相反顺序,即DCBA。这是一个递归地创建二叉树。