科百科
当前位置: 首页 范文大全

所谓平衡二叉树是指(什么是平衡二叉树)

时间:2023-07-07 作者: 小编 阅读量: 3 栏目名: 范文大全

作者 |小灰

来源 | 程序员小灰

————— 第二天 —————

————————————

在红黑树当中,我们通过红色结点和黑色结点作为辅助,来判断一颗二叉树是否相对平衡。

而在AVL树当中,我们通过“平衡因子”来判断一颗二叉树是否符合高度平衡。

到底什么是AVL树的平衡因子呢?

对于AVL树的每一个结点,平衡因子是它的左子树高度和右子树高度的差值。只有当二叉树所有结点的平衡因子都是-1, 0, 1这三个值的时候,这颗二叉树才是一颗合格的AVL树。

举个例子,下图就是一颗典型的AVL树,每个节点旁边都标注了平衡因子:

其中结点4的左子树高度是1,右子树不存在,所以该结点的平衡因子是1-0=1。

结点7的左子树不存在,右子树高度是1,所以平衡因子是0-1=-1。

所有的叶子结点,不存在左右子树,所以平衡因子都是0。

上图原本是一个平衡的AVL树,当插入了新结点1时,父结点2的平衡因子变成了1,祖父结点4的平衡因子变成了2。

此时,结点4的左右子树高度差超过了1,打破了AVL树的平衡。

那么,怎样才能重新恢复AVL的平衡呢?

之前讲解红黑树的时候,我们提到红黑树包括左旋转、右旋转、变色这三种操作。

而AVL树不存在变色的问题,只有左旋转、右旋转这两种操作。左旋转:逆时针旋转AVL树的两个结点X和Y,使得父结点被自己的右孩子取代,而自己成为自己的左孩子。说起来有些绕,见下图(标号1,2,3的三角形,是结点X和Y的子树):

图中,身为右孩子的Y取代了X的位置,而X变成了自己的左孩子。此为左旋转。

右旋转:顺时针旋转AVL树的两个结点X和Y,使得父结点被自己的左孩子取代,而自己成为自己的右孩子。见下图:

图中,身为左孩子的Y取代了X的位置,而X变成了自己的右孩子。此为右旋转。

左左局面(LL)

顾名思义,祖父结点A有一个左孩子结点B,而结点B又有一个左孩子结点C。标号1,2,3,4的三角形是各个结点的子树。

在这种局面下,我们以结点A为轴,进行右旋操作:

右右局面(RR)

祖父结点A有一个右孩子结点B,而结点B又有一个右孩子结点C。

在这种局面下,我们以结点A为轴,进行左旋操作:

左右局面(LR)

祖父结点A有一个左孩子结点B,而结点B又有一个右孩子结点C。

在这种局面下,我们先以结点B为轴,进行左旋操作:

这样就转化成了左左局面。我们继续以结点A为轴,进行右旋操作:

右左局面(RL)

祖父结点A有一个右孩子结点B,而结点B又有一个左孩子结点C。

在这种局面下,我们先以结点B为轴,进行右旋操作:

这样就转化成了右右局面。我们继续以结点A为轴,进行左旋操作:

例子中,以结点4为根的子树出现了不平衡的情况。

不难看出,这个子树正好符合 “左左局面”。

于是,我们以结点4为轴,进行右旋操作:

这样一来,这颗AVL树重新恢复了高度平衡。

如上图所示,在AVL树中删除了结点1,导致父节点2的平衡因子变为-2,打破了平衡。

此时,以结点2为根的子树正好形成了“右左局面”,于是我们首先以结点4为轴进行右旋:

然后以结点2为轴进行左旋:

如此一来,AVL树重新恢复了高度平衡。

☞华为开会有“原则”?企业的成功都从会议开始

☞微信、支付宝否认提供「锁定 35 万人」数据;苹果押宝中国 5G 市场;TiDB 4.0.1 发布 | 极客头条

☞程序员晒端午福利,网友:看了你的福利我想摔手机

☞如何成为一名黑客?

☞发送0.55 ETH花费近260万美元!这笔神秘交易引发大猜想

☞京东姚霆:推理能力,正是多模态技术未来亟需突破的瓶颈!

    推荐阅读
  • 百家饭是什么意思(百家饭简单释义)

    旧时大江南北民间生育习俗有两种形式:一是婴儿出生后,其祖母向村邻象征性地讨取五谷杂粮,碾成粉末后熬成粥糊,供产妇食用,我来为大家讲解一下关于百家饭是什么意思?百家饭是什么意思旧时大江南北民间生育习俗。四川方言里,百家饭是指,初生的小孩,经常在朋友、邻居家里吃东西,而且吃的家数很多,故称“百家饭”。“百家饭”泛指人数多、品类齐的饮食等。也指,乞讨,吃百家饭的,意指,乞丐,乞讨者。

  • 经典的言情暗恋小说推荐(一本超级好看的暗恋文)

    江梨没有想到会再次遇见他,男神不仅是闺蜜选修课的代课老师,也是她的邻居。可自从江梨成了陆栖然的课代表之后,深受他的青睐。某天,江梨家的房子漏水了,直接导致楼下陆男神家的电路系统瘫痪了。陆男神有一个紧急的视频会议,所以在江梨家借助了一晚。两人还因为被大陆男神的朋友给误以为两人在交往。某天,闺蜜许薇回来了,两人继续扮演着互换身份的戏码,闺蜜想要帮江梨攻略男神。

  • 沙茶肘子怎么做(砂仁肘子做法)

    步骤1食材:猪肘600克、姜1块、香菜少许。辅料:生抽1勺、沙茶酱1勺、水淀粉适量。步骤3猪肘加料酒、生抽、姜片、沙茶酱腌制1小时。步骤4将肘子放入蒸锅中,蒸2小时至熟烂。步骤5取出肘子,将汤汁倒入锅里烧开,分两次加入水淀粉勾芡,将汤汁淋在肘子上。最后用香菜装盘即可。

  • 明朝村长怎么称呼(古代村官叫什么)

    明朝村长怎么称呼?明朝村长怎么称呼明朝没有村长,最低级别的机构就是县了,县以下采用乡老治政,就是一旦遇到纠纷和差役就推举有名望威信的老者来处理,有的家族势力大的地方会由族长管理地方。古代乡村是实行保甲制度的,各府州县卫所属乡村,十家人立一个牌头,十牌立一甲头,十甲立一保长,平时负责各种基层管理工作,诸如户籍登记、治安防范等,有重要事必须及时通报县衙典吏,典吏再上报给县官。

  • 温州大学怎么样 考上温州大学怎么样

    2019年,学校被确定为浙江省重点建设高校。点击查看》》4、网友对温州大学评价1.学校主校区坐落在茶山,与大罗山相接,环境比较优美,教学设备先进。我只想说,温州大学环境不错,设备齐全,很适合学习,怎样走过自己的研究生之路关键是看你自己的选择了。

  • 液体的闪点是指什么(液体的闪点的定义)

    下面内容希望能帮助到你,我们来一起看看吧!液体的闪点是指什么液体的闪点是指液体挥发出的蒸汽在与氧气形成混合物后,遇火源能够闪燃的最低温度。闪点是可燃性液体性质的主要标志之一,是衡量液体火灾危险性大小的重要参数。燃点与闪点的关系:易燃液体的燃点一般高出其闪点1~5℃,并且闪点越低,这一差值越小,特别是在敞开的容器中很难将闪点和燃点区分开来。因此,评定这类液体火灾危险性大小时,一般用闪点。

  • 三角梅嫁接时间和方法(哪个季节比较好呢)

    跟着小编一起来看一看吧!三角梅嫁接时间和方法三角梅嫁接时间通常是在春季和夏季进行,这个时候的温度比较适宜,有利于成活,而冬季嫁接成活率比较低。首先需要从植株上砍下一段健康的枝条,将它作为一个合适的插穗,然后放到阴凉通风处进行晾干。其次将插穗嫁接到砧木上,在这之前需要将砧木切出一个口。最后用绳子将其绑紧即可。

  • 除了广东还有哪些城市宜居(广东这座城不仅仅宜居)

    截至2022年8月,横琴累计商事主体达56176户,其中合作区成立以来,新设立企业4298家。近年来,格力电器持续加强自主创新能力,截至目前已拥有35项全球领先技术,累计申请国内外专利近10万项,产品远销160多个国家和地区。2021年,格力电器历时9年研发的“零碳源”技术一举斩获世界级技术创新大奖。据悉,采用这项技术,碳排放量较传统空调技术可降低80%以上。珠海市科技创新局副局长伞景辉表示。

  • 无毒蛇蜕皮和什么食物相克(蛇胆蛇血蟾蜍青蛙轮番生吃下肚)

    然而,广西柳州的男子覃伙伴却不听劝,尤其喜欢吃生的野味,结果胃得到了满足,身体吃不消了。入院第3天,覃伙伴终于向医生吐露实情。覃伙伴的说法证实了医生对病情的诊断。10天后,覃伙伴身上的皮疹消退了,破溃的皮肤已结痂,最终康复出院。而有资料显示,野生动物与人类共患的疾病有100多种,如狂犬病、结核、甲肝等,其中蛇的患病率较高。滥食野生动物不仅破坏了自然生态环境,对人体的健康也会造成很大的危害。

  • 烧腐竹怎么做好吃(制作烧腐竹的方法)

    接下来我们就一起去了解一下吧!烧腐竹怎么做好吃食材准备:淀粉、青椒、红辣椒、鸡精、蒜薹、花椒、食用油、腐竹、酱油、食盐。青椒和蒜薹一份洗净备用,炒锅放宽油烧热,下入腌制的腐竹炸辣椒炸香。清水和高汤,煮一下入味,加入鸡精调味出锅。