赞
踩
树是一种递归定义的数据结构。递归特性:当前每一层都跟上一层有类似的结构,每一个子结构跟其父结构都类似。
所有结点中最大的分支数就是树的度。
度为0的结点就是叶子结点。
这部分直接看下面王道的“10. 树的存储结构”。
当求一棵树中的空指针个数等时,我们可以先在每个结点上填充上空指针,使得每个结点的度都为2,然后就可以运用公式了。
满二叉树是一种特殊的完全二叉树。
结点树=总度数+1;这的“1”表示的是根结点。
这里的 h-1<log2 (n+1)<=h,表示的是log2 (n+1)在 h-1 和 h 之间相差不到一的小数,由于是<=h,所以向上取整。
举个例子:
举个例子:
举个例子:
再举个例子:
必须跟中序序列组合才能确定唯一的二叉树。
遍历二叉树是以一定的规则讲二叉树中的结点排列成一个线性序列,从而得到几种遍历序列,使得该序列中的每个结点(第一个和最后一个结点除外)都有一个直接前驱和直接后继。
这种是没有线索的时候,找遍历序列中的前驱和后继。
通过中序遍历,先访问D结点(visit(D)),然后继续执行下去。
如果考试要是考到关于遍历森林的代码的话,我们可以先转换成上述这种二叉树(即森林用二叉树来存储),然后利用我们熟悉的二叉树代码继续解决。
只要是最优二叉树就是哈夫曼树。
并查集的逻辑结构是一个集合。
这个时候我们可以将集合之间的关系类似地看成是森林,而每个集合中的元素也可以组成一棵树。
可以用双亲表示法来存储并查集。
优化思路:在每次Union操作构建树的时候,尽量不要让树“长高”。
①用根结点的绝对值表示树的结点总数。
②Union操作,让小树合并到大树。
每次Union时,都需要从指定元素出发找到该元素的根结点,也就是需要乘上Find函数的时间复杂度。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。