
算法导论
文章平均质量分 51
Mr.deeplan
这个作者很懒,什么都没留下…
展开
-
平衡二叉树的删除
在删除某节点之前我们需要找到该节点的位置,因此寻找节点的过程可分为以下3种情况(假设我们要找的节点值为data,当前节点为note):1、note的值<data,则应该在该节点的左子树寻找。在左子树中删除该节点成功后,需要调整平衡二叉树,以保持平衡。如果删除节点后(在左子树中删除节点,左子树高度不变或变矮),note节点的平衡因子为-2,说明删除后note的右子树导致note不平衡,则需...转载 2018-09-05 12:09:46 · 2073 阅读 · 1 评论 -
算法导论-二叉搜索树-练习
12.2-1 假设一棵二叉搜索树中的结点在 1 到 1000 之间,现在想要查找数值为 363 的结点。下面序列中哪个不是查找过的序列?a. 2, 252, 401, 398,330,344,397,363。b. 924,220,911,244,898,258,362,363。c. 925,202,911,240,912,245,363。d. 2,399,387,219,266,3...原创 2018-09-03 15:43:21 · 676 阅读 · 0 评论 -
平衡二叉树的旋转
AVLTree高度平衡的搜索二叉树一棵平衡树,或是空树,或是具有以下性质的二叉搜索树:左子树和右子树都是AVL树,且左右子树的高度之差的绝对值不超过1。该二叉树,根结点的右子树高度为3,左子树高度为2。结点上方的数字为平衡因子,因为右子树高度比左子树高度大1,所以根结点的平衡因子为1。一颗平衡二叉树,如果有n个结点,其高度可保持O(log2^n),平均搜索长度也可以保持在O(log2^n...转载 2018-09-04 10:59:57 · 5613 阅读 · 2 评论 -
平衡二叉树的旋转以及BF(平衡因子)的计算
关于平衡二叉树的最重要的一句话:在构建平衡二叉树的过程中,每当插入一个结点时,先检查是否因插入而破坏了树的平衡性,若是,则找出最小不平衡子树,在保持二叉排序树特性的前提下,调整关系。这句话意味着:只要破坏了平衡性,就马上修改使得二叉树重新平衡,意思就是只要修改了最小不平衡树就可以使得整个二叉树重新平衡. #include "stdio.h" #include "stdlib.h" ...转载 2018-09-04 17:25:33 · 9412 阅读 · 8 评论