平衡树的动机

作者&投稿:敖林 (若有异议请与网页底部的电邮联系)
平衡树有哪些?~

平衡树是虾米东西?!

悬赏分太少了,像这样的问题最少有100分!
我有C++的,你看不懂,我就不给你发了。

对一棵查找树(search tree)进行查询/新增/删除 等动作, 所花的时间与树的高度h 成比例, 并不与树的容量 n 成比例。如果可以让树维持矮矮胖胖的好身材, 也就是让h维持在O(lg n)左右, 完成上述工作就很省时间。能够一直维持好身材, 不因新增删除而长歪的搜寻树, 叫做balanced search tree(平衡树)。
旋转Rotate —— 不破坏左小右大特性的小手术
平衡树有很多种, 其中有几类树维持平衡的方法, 都是靠整形小手术:

图中 x 与 y 为 nodes; A, B, C 为一整串的 subtrees。 试想: 如果 x 原来是 y 的 left child; 现在想将 x 变成 parent, 则树的其它部分应如何变化? y 必须变成 right child, 这样才能维持 BST 的特性 -- 左小右大。 至于 x 与 y 以下的其它部分, 可以整串 subtree 一起处理: x 原来的 left subtree (A), 调整后还是 x 的 left subtree; y 原来的 right subtree (C), 调整后还是 y 的 right subtree; 而 x 原来的 right subtree (B), 调整后很自然只有一个地方可以放: 变成 y 的 left subtree。 这些规则都不需要记, 因为如果你希望调整后还维持 BST 左小右大的特性, 这是唯一的答案。 把 x,y 两个值及 A,B,C 三棵 subtrees 内的三串值画在数在线看更清楚:
--------- x --------- y ---------
A B C
这个动作, 称为 right rotation 向右旋转, 或称为顺时针旋转 (clockwise)。 原来的 parent (y) 叫做 pivot, 原来的 child (x) 叫做 rotator。
把上图反过来看, 如果原来的树长得像右图, 想将它改成左图, 则称为 left rotation 向左旋转, 或称为逆时针旋转 (counter-clockwise)。 原来的 parent (x) 叫做 pivot, 原来的 child (y) 叫做 rotator。 一棵二叉平衡树的子树,根是Root,右子树是x,左子树的根为RootL,左子树的两个孩子树分别为LLeftChild和LRightChild。则右旋后,该子树的根为RootL,左子树为LLeftChild,右子树的根为Root,Root的两个孩子树分别为LRightChild(左)和x(右)。
数一下旧的 parent 左 subtree 有多少 nodes? 右 subtree 有多少 nodes? 旋转后新的 parent 左右 subtrees 又各有多少 nodes? 发现右旋的效果会让树的重心往右移; 而左旋的效果则是让树的重心往左移。 如果你的树经历过许多 insert/remove 等等岁月的沧桑, 越长越歪, 在适当的时候对它进行一下旋转手术, 不就可以将它变回矮矮胖胖四平八稳的美丽模样吗? 所以左旋与右旋是几种平衡树共同采用的基本手术; 只不过不同的平衡树, 选择不同的时机/条件来动手术而已。
左子节点与右子节点对称的树就是平衡树,否则就是非平衡树。
非平衡树会影响树中数据的查询,插入和删除的效率。比如当一个二叉树极不平衡时,即所有的节点都在根的同一侧,此时树没有分支,就变成了一个链表。数据的排列是一维的,而不是二维的。在这种情况下,查找的速度下降到O(N),而不是平衡二叉树的O(logN)。
为了能以较快的时间O(logN)来搜索一棵树,需要保证树总是平衡的(或者至少大部分是平衡的)。这就是说对树中的每个节点在它左边的后代数目和在它右边的后代数目应该大致相等。




结合自身实际谈谈为什么要入党动机
二是,为民族复兴;三是,为了实现共产主义的崇高理想。认为,内心忠诚地信仰共产主义,在思想上承认党的纲领和党的章程,并在行动上努力实践,积极投身于为社会主义、共产主义奋斗的事业,才为具备了入党的资格。要求入党的同志,都应当认真剖析一下自己的思想,思考一下自己究竟是抱着什么样的动机申请人...

中学班主任工作中学习动机不强的后进生问题研究
摘要:教育者的任务是发现、激发并保持学生的学习动机,使学生从事有利于学习的活动。作为一名未来的教师,如何激发学生的学习动机,保证课堂的效率,是我们今后教育教学工作中至关重要的问题。从理论上来说,激发中学生学习动机的方式和手段多种多样。其中,如何激发后进生的学习动机,一直是难以解决而又值得探讨的问题。笔者...

你入党的动机和目的
入党动机和目的是一个人要求入党的内在原因和真实目的。是推动其争取入党的精神力量。正确的入党动机可以激励人们,也是党员正确世界观、人生观、价值观的反映。正文:谈到为什么要入党,其中由两问题要明确:一是对党的认识问题,二是入党动机的问题。入党是一件多么神圣的事情啊!许多人都曾有这样的感慨。

不忘初心端正入党动机心得体会
他说,精准扶贫为我们村老百姓办了很多实事--水通了,电压变稳定了,家里看上有线电视了,村里又能听上广播了,原来荒废的地里种上油茶树了,村里还有 篮球 场、兵乓球台了。 王坤德强调,我们要重温入党动机,要坚持吃苦在前享乐在后,坚持群众路线,从群众中来到群众中去,全心全意为老百姓服务,为老百姓办实事,...

联系思想实际谈谈如何端正入党动机
那么我们应该从哪些方面来把握正确的入党动机呢?从大的方面讲,主要包括三个方面的内容: 第一,要有为共产主义和中国特色社会主义事业奋斗终身的坚定信念。党章明确规定,党的最高理想和最终目标是实现共产主义。共产主义社会将是物质财富极大丰富,人民精神境界极大提高,每个人自由而全面发展的社会。这种...

怎么样才能使自己的孩子远离那些爱玩的玩伴,静下心学习
2. 动机有三大功能:一是发起功能,即它具有发起个体行为的作用。二是指向功能,这个功能和发起功能是连续起作用的,即在行为发动起来后,紧接着就有一定指向了。三是维持功能,活动发动起来后,能否继续下去要受一个人的动机支配。3. 对动机的分类有不同的维度。比较常见的是把动机分为生理性动机(指...

作为一名入党积极分子如何通过加强理论学习端正自己的入党动机
作为一名入党积极分子,必须加强自身对党的宗旨意识、责任意识的认识,端正入党动机,发挥党员的先锋模范作用。中国共产党的宗旨是全心全意为人民服务,这是当的先进性的集中体现,要加强对党的先进性的认识,就必须强化宗旨意识,并且把这种意识体现在我们的日常学习、生活中去。具体到入党积极分子来说,就...

扬州大学秋水仙碱投毒事件的作案动机
”唐尧称,他对此案的了解绝对不比记者多,因为当地警方一直没有向校方通报案情。“我们也在等着公诉的那一天。”辖管整个学院230多名教师,唐尧坦言对贡昌春的了解甚少,“你平时看不出来他会做出这样的事情来。”他拒绝猜测贡昌春可能的作案动机。但据了解,武辉对贡昌春的作案动机有自己相对肯定...

谁知道是谁发明了打火机,发明打火机的动机是什么呢
打火机是一种小巧的取火器,现代打火机按使用的燃料可分为液体打火机和气体打火机;按发火方式可分为火石打火机和电子打火机。最原始的打火机是从燧石点火枪衍生出来的。带强弹簧的扳机扣动时,击打在火石上产生火花,点燃于树叶。1823年德国化学家备贝莱纳在实验室发现:氢气遇到铂棉会起火。这一发现...

汽车岌动机上护板不装有影响吗?
很多车主在买完新车之后,都会花钱给原本没有安装底护板的车型安装护板,这是为什么呢?首先先说明一个问题,很多家用的轿车没有底护板,一般来讲家用轿车的使用环境比较好,厂家考虑成本原因会省略掉底护板,而有些车主因为某些原因,则会选择自己加装护板。那这个护板能起到什么作用呢?到底有没有必要加装...

藤县17865513211: 为什么要构建平衡二叉树,的主要目的为? -
线都舒配: 因为正常的二叉排序树弄得不好查找性能近似于O(n),使用平衡二叉树则可以保证查找性能不超过1.5log2n

藤县17865513211: 构造平衡二叉树的目的是什么 -
线都舒配: 平衡二叉树:它的左右子树都是平衡二叉树,且两者深度之差不超过1 二叉树的本质就是一种不错的算法结构.平衡二叉树就是为了将查找的时间复杂度保证在O(logN)范围内....

藤县17865513211: 平衡二叉树的作用 -
线都舒配: 我们知道,对于一般的二叉搜索树(Binary Search Tree),其期望高度(即为一棵平衡树时)为log2n,其各操作的时间复杂度(O(log2n))同时也由此而决定.但是,在某些极端的情况下(如在插入的序列是有序的时),二叉搜索树将退化...

藤县17865513211: 平衡二叉树比其他二叉树有什么好处 -
线都舒配: 首先平衡二叉树是特殊的二叉排序树,他的结点元素间存在着偏序关系. 其次相对于一般的二叉排序树,平衡二叉树的左右子树的深度差也有不超过1层的约束. 这样使得平衡树是同种元素序列情况下的深度最小的二叉排序树.这可以减少二叉树元素查找的深度,从而提升平均查找效率.

藤县17865513211: 什么是平衡树?
线都舒配: 若一棵二叉树中任一点的左子树高度与右子树高度之差不超过1,则称该二叉树为平衡二叉树 . 换句话说,从树的根到任意一个叶子节点的深度,最多相差1.

藤县17865513211: 什么是平衡二叉树 -
线都舒配: 形态匀称的二叉树称为平衡二叉树 (Balanced binary tree) ,其严格定义是:一棵空树是平衡二叉树;若 T 是一棵非空二叉树,其左、右子树为 TL 和 TR ,令 hl 和 hr 分别为左、右子树的深度.当且仅当 ①TL 、 TR 都是平衡二叉树;② | hl - hr |≤ 1;时,则 T 是平衡二叉树.

藤县17865513211: 什么叫做平衡二叉树? -
线都舒配: 平衡二叉树(Balanced Binary Tree)又被称为AVL树(有别于AVL算法),且具有以下性质:它是一 棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树.构造与调整方法 平衡二叉树的常用算法有红黑树、AVL、Treap、伸展树等. 最小二叉平衡树的节点的公式如下 F(n)=F(n-1)+F(n-2)+1 这个类似于一个递归的数列,可以参考Fibonacci数列 1是根节点 F(n-1)是左子树的节点数量 F(n-2)是右子数的节点数量.

藤县17865513211: 满二叉树为什么不是平衡树 -
线都舒配: 满二叉树不是平衡树的原因: (1)满二叉树:除了叶结点外每一个结点都有左右子叶且叶子结点都处在最底层的二叉树. (2)平衡树,即平衡二叉树,又被称为AVL树(区别于AVL算法),它是一棵二叉排序树,且具有以下性质:它是一棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树.平衡树,左子节点与右子节点对称.

藤县17865513211: AVL树是什么意思? -
线都舒配: 在计算机科学中,AVL树是最先发明的自平衡二叉查找树.在AVL树中任何节点的两个儿子子树的高度最大差别为一,所以它也被称为高度平衡树.查找、插入和删除在平均和最坏情况下都是O(log n).增加和删除可能需要通过一次或多次树旋...

藤县17865513211: 为什么平衡二叉排序树上任一结点的平衡因子可以为“ -
线都舒配: 给定结点数的平衡二叉树的高度相来应该是唯一的,平衡嘛,任何一个节点两个子树的高度都相差不过1嘛……平衡二叉树的结点中需要新加一个元素表示它的平衡因子用于旋转平衡,二叉排序树并不需要这玩意儿.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网