![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
恃剑凌云
以梦为马,不负韶华;不忘初心,方得始终。
展开
-
二叉查找树的平衡策略—旋转
左旋右旋先左旋后右旋转先右旋后左旋原创 2020-01-13 20:37:18 · 192 阅读 · 0 评论 -
二叉树遍历
定义所谓遍历(Traversal)是指沿着某条搜索路线,依次对树中每个结点均做一次且仅做一次访问。访问结点所做的操作依赖于具体的应用问 题。 遍历是二叉树上最重要的运算之一,是二叉树上进行其它运算之基础。遍历方案从二叉树的递归定义可知,一棵非空的二叉树由根结点及左、右子树这三个基本部分组成。因此,在任一给定结点上,可以按某种次序执行三个操作:⑴访问结点本身(N),⑵遍历该结...原创 2020-01-13 16:34:01 · 554 阅读 · 0 评论 -
红黑树与AVL树的区别
AVL树1)和红黑树相比,AVL树是严格的平衡二叉树,平衡条件必须满足(所有节点的左右子树高度差不超过1)。不管是执行插入还是删除操作,只要不满足上面的条件,就要通过旋转来保持平衡,而旋转是非常耗时的,由此我们可以知道AVL树适合用于插入与删除次数比较少,但查找多的情况。2)AVL树追求绝对平衡,条件比较苛刻,实现起来比较麻烦,每次插入新节点之后需要旋转的次数不能预知。3)由于维护这种...原创 2020-01-13 11:44:42 · 5331 阅读 · 0 评论 -
AVL树
定义AVL树是最先发明的自平衡二叉查找树。在AVL树中任何节点的两个子树的高度最大差别为1,所以它也被称为高度平衡树。增加和删除可能需要通过一次或多次树旋转来重新平衡这个树。特点AVL树本质上还是一棵二叉搜索树,它的特点是: 1.本身首先是一棵二叉搜索树。2.带有平衡条件:每个结点的左右子树的高度之差的绝对值(平衡因子)最多为1。也就是说,AVL树,本质上是带了平衡功能的二...原创 2020-01-13 10:27:57 · 137 阅读 · 0 评论 -
红黑树
定义红黑树(Red Black Tree) 是一种自平衡二叉查找树性质红黑树是每个节点都带有颜色属性的二叉查找树,颜色或红色或黑色。在二叉查找树强制一般要求以外,对于任何有效的红黑树我们增加了如下的额外要求:1)节点是红色或黑色。2)根节点是黑色。3 )每个红色节点的两个子节点都是黑色。(从每个叶子到根的所有路径上不能有两个连续的红色节点)4)从任一节点到其每个叶子的所...原创 2020-01-12 17:50:20 · 173 阅读 · 0 评论 -
平衡二叉查找树
平衡二叉搜索树(英语:Balanced Binary Tree)是一种结构平衡的二叉搜索树,即叶节点高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。它能在O(logN)内完成插入、查找和删除操作,最早被发明的平衡二叉搜索树为AVL树。常见的平衡二叉查找树有:AVL树...原创 2020-01-12 17:46:11 · 134 阅读 · 0 评论 -
平衡树
定义平衡树,即平衡二叉树(Balanced Binary Tree)具有以下性质:它是一棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。平衡二叉树的常用实现方法有红黑树、AVL、替罪羊树、Treap、伸展树等...原创 2020-01-12 17:42:07 · 403 阅读 · 0 评论 -
完全二叉树
定义若设二叉树的深度为h,除第 h 层外,其它各层 (1~h-1) 的结点数都达到最大个数,第 h 层所有的结点都连续集中在最左边,这就是完全二叉树。完全二叉树是由满二叉树而引出来的。对于深度为K的,有n个结点的二叉树,当且仅当其每一个结点都与深度为K的满二叉树中编号从1至n的结点一一对应时称之为完全二叉树。(1)所有的叶结点都出现在第k层或k-l层(层次最大的两层)(2)对任一结...原创 2020-01-12 17:33:19 · 430 阅读 · 0 评论 -
满二叉树
国内满二叉树定义一个二叉树,如果每一个层的结点数都达到最大值,则这个二叉树就是满二叉树。也就是说,如果一个二叉树的层数为K,且结点总数是 ,则它就是满二叉树。性质1、一个层数为k 的满二叉树总结点数为:因此满二叉树的结点数一定是奇数个。2、第i层上的结点数为:3、一个层数为k的满二叉树的叶子结点个数(也就是最后一层):例图如下...原创 2020-01-12 17:24:42 · 1607 阅读 · 0 评论 -
二叉排序树
二叉排序树(Binary Sort Tree),又称二叉查找树(Binary Search Tree),亦称二叉搜索树。定义一棵空树,或者是具有下列性质的二叉树:(1)若左子树不空,则左子树上所有结点的值均小于它的根结点的值;(2)若右子树不空,则右子树上所有结点的值均大于它的根结点的值;(3)左、右子树也分别为二叉排序树;(4)没有键值相等的结点。...原创 2020-01-12 17:02:53 · 159 阅读 · 0 评论 -
二叉树
定义在计算机科学中,二叉树是每个结点最多有两个子树的树结构。通常子树被称作“左子树”(left subtree)和“右子树”(right subtree)。二叉树常被用于实现二叉查找树和二叉堆。性质...原创 2020-01-12 16:57:18 · 119 阅读 · 0 评论 -
树、森林与二叉树的转换
树转换为二叉树(1)加线。在所有兄弟结点之间加一条连线。(2)去线。树中的每个结点,只保留它与第一个孩子结点的连线,删除它与其它孩子结点之间的连线。(3)层次调整。以树的根节点为轴心,将整棵树顺时针旋转一定角度,使之结构层次分明。(注意第一个孩子是结点的左孩子,兄弟转换过来的孩子是结点的右孩子)森林转换为二叉树(1)把每棵树转换为二叉树。(2)第一棵二叉树不动,从第二棵...转载 2020-01-12 16:43:55 · 168 阅读 · 0 评论 -
森林
定义由m(m>=0)棵互不相交的树的集合称为森林;原创 2020-01-12 15:57:46 · 605 阅读 · 0 评论 -
树
树是一种数据结构,它是由n(n>=1)个有限结点组成一个具有层次关系的集合。把它叫做“树”是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。它具有以下的特点: 1)每个结点有零个或多个子结点; 2)没有父结点的结点称为根结点; 3)每一个非根结点有且只有一个父结点; 4)除了根结点外,每个子结点可以分为...原创 2020-01-12 15:34:27 · 149 阅读 · 0 评论