算法步骤:
读入字符串如果为'#'则表明此二叉树为空树。否则申请一个空间,将ch的值给bt->data。递归创建左子树,右子树。
输入之前应先将二叉树补全即:
创建二叉树:
void creat_binary(BT &bt)
{
//先序创建二叉树
char ch;
cin >> ch;
if (ch == '#') //如果ch==#则bt为空树
bt = NULL;
else
{
bt = new binary_tree;
bt->data = ch;
creat_binary(bt->lchild); //递归创建左右子树
creat_binary(bt->rchild);
}
}
输出二叉树:
//先序输出二叉树,中序,后序输出只需把输出放在两个递归之间与最后即可
void pre_prin(BT bt)
{
if (bt)
{
cout << bt->data << ' ';
pre_prin(bt->lchild);
pre_prin(bt->rchild);
}
}
计算二叉树深度: