1.树的遍历
2.树的实现
2.1父指针表示法
2.2子结点表示法(邻接表)
2.3左子结点/右兄弟结点表示法
2.4动态结点表示法(与子结点表示法差不多,但是可以动态分配子结点,而不是把子结点分配在数组中)
3.K叉树
K叉树(K-ary tree)的内部节点恰好有K个子结点。
- 满K叉树:对于树中的任意节点,要么它是叶子结点,要么它是分支结点,且有K个非空的子结点。
- 结论:假设满K叉树有n个分支结点,则这棵树一共有
个叶子结点
证明:对于每个分支结点,它具有k个非空子结点,再加上一个根结点,这棵树一共有kn+1个结点,减去分支结点的个数n,即证。
4.树的顺序表示法(sequential tree implementation)

方法1:用"/"表示空指针
则这棵树可以表示为:AB/D//CEG///FH//I//
方法二:用"/"表示空指针,同时给分支结点加上标记 " ' "
则这棵树可以表示为:A'B'/DC'E'G/F'HI
方法三:用")"标记表明子结点表的结束(注意:这种表示方法当子结点只有一个时,无法区分子结点是左子节点还是右子结点)
则这棵树可以表示为:ABD)))CEG))FH)I))))
网友评论