一棵树 n个结点
先根遍历和后根遍历序列完全相反
对于二叉树的先/中/后根遍历
顺序完全一样 只不过根的位置不同
二叉树只有度为0和2的结点 二叉树结点个数至少为
2(h-1) + 1 : 第一层为1个 其余均为2个
二叉树的后序遍历非递归算法不使用栈
最佳方案是采用三叉链表
设树T的度为4,其中度为1、2、3、4的结点个数分别为4、2、1、1。则T中有多少个叶子结点?
虽然在中序遍历时具有一定的优势,但也存在一些问题无法解决,包括以下几个方面:
插入和删除操作麻烦且速度较慢:由于线索二叉树中每个结点都需要维护前驱和后继指针,因此在插入和删除结点时需要更新这些指针,操作相对复杂且速度较慢。
线索子树不能共用:线索二叉树中的线索只能在某种遍历方式下使用,而不能在其他遍历方式下使用。这意味着如果需要在不同的遍历方式下使用线索,就需要对二叉树进行多次线索化,导致额外的时间和空间开销。
不支持动态结点的插入和删除:线索二叉树的线索化过程是在遍历过程中完成的,因此无法在遍历过程中动态地插入和删除结点。如果需要在遍历过程中动态地修改二叉树的结构,就需要重新线索化整个二叉树,效率较低。
需要额外的存储空间:线索二叉树中每个结点都需要维护前驱和后继指针,这会占用额外的存储空间。尤其是在结点较多的情况下,额外的存储空间开销会比较大。
综上所述,线索二叉树虽然在中序遍历时具有一定的优势,但在插入和删除操作、线索共用、动态结点修改和额外存储空间等方面存在一些问题无法解决。
不能有效解决先序线索二叉树找先序前驱和后序线索二叉树找后序后继。
n+1
F(n) = F(n-1) + F(n -2 ) + 1
F(1) = 1
F(2) = 2
F(3) = 4
F(4) = 7
最多即为满二叉树