已知一棵二叉树的前序序列和中序序列分别是ABCDEFGHIJ和BAEDCHGIFJ,构造二叉树,并写出其后序序列?
这是递归算法。
前序第一个必定是根,根就是A,
从中序中就能分出左、右子树了:B和EDCHGIFJ,这是中序
就可据此从前序中分出左、右子树了:B和CDEFGHIJ,这是前序了。
这样一个问题变成了两个同样的小问题了,递归下去不就解决了。
多动动脑筋就出来了
高度为k的二叉树最多有几个结点?
一颗深度为k的二叉树,最多有(2^k)-1个节点,第k层最大节点数为2^(k-1)次方。
性质1:二叉树的第i层上至多有2i-1(i≥1)个节点。
性质2:深度为h的二叉树中至多含有2h-1个节点。
性质3:若在任意一棵二叉树中,有n0个叶子节点,有n2个度为2的节点,则必有n0=n2+1。
性质4:具有n个节点的完全二叉树深为log2x+1(其中x表示不大于n的最大整数)。

