最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

平衡二叉樹的左右旋以及雙旋轉(zhuǎn)的圖文詳解

 更新時(shí)間:2019年01月10日 15:40:13   作者:qq_43193797  
今天小編就為大家分享一篇關(guān)于平衡二叉樹的左右旋以及雙旋轉(zhuǎn)的圖文詳解,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧

高度平衡的搜索二叉樹

一棵平衡樹,或是空樹,或是具有以下性質(zhì)的二叉搜索樹:左子樹和右子樹都是AVL樹,且左右子樹的高度之差的絕對值不超過1。 

該二叉樹,根結(jié)點(diǎn)的右子樹高度為3,左子樹高度為2。結(jié)點(diǎn)上方的數(shù)字為平衡因子,因?yàn)橛易訕涓叨缺茸笞訕涓叨却?,所以根結(jié)點(diǎn)的平衡因子為1。

一顆平衡二叉樹,如果有n個(gè)結(jié)點(diǎn),其高度可保持O(log2^n),平均搜索長度也可以保持在O(log2^n)

平衡化旋轉(zhuǎn) 

AVL樹相較于普通的二叉搜索樹,自主要的就是做了平衡化處理,使得二叉樹變的平衡,高度降低。

在插入一個(gè)結(jié)點(diǎn)后應(yīng)該沿搜索路徑將路徑上的結(jié)點(diǎn)平衡因子進(jìn)行修改,當(dāng)平衡因子大于1時(shí),就需要進(jìn)行平衡化處理。從發(fā)生不平衡的結(jié)點(diǎn)起,沿剛才回溯的路徑取直接下兩層的結(jié)點(diǎn),如果這三個(gè)結(jié)點(diǎn)在一條直線上,則采用單旋轉(zhuǎn)進(jìn)行平衡化,如果這三個(gè)結(jié)點(diǎn)位于一條折線上,則采用雙旋轉(zhuǎn)進(jìn)行平衡化。

單旋轉(zhuǎn)

左單旋

動(dòng)圖演示,圖片內(nèi)容可以無視,看懂操作進(jìn)行了

將右子樹的左子樹鏈接到父親節(jié)點(diǎn)的右孩子結(jié)點(diǎn),父親節(jié)點(diǎn)作為ptr結(jié)點(diǎn)的左孩子結(jié)點(diǎn)便完成了旋轉(zhuǎn)

右單旋

右單旋是左單旋的鏡像旋轉(zhuǎn). 

當(dāng)前節(jié)點(diǎn)ptr,與父親節(jié)點(diǎn)和當(dāng)前節(jié)點(diǎn)的左孩子結(jié)點(diǎn)位于一條直線上時(shí),使用右單旋進(jìn)行平衡。

雙旋轉(zhuǎn)

先左后右雙旋轉(zhuǎn)

當(dāng)在ptr的左子樹的右子樹中插入一個(gè)結(jié)點(diǎn)后,造成了ptr平衡因子為-2的不平衡,將ptr向下找到當(dāng)前結(jié)點(diǎn)的左孩子的右孩子,先進(jìn)行左單旋ptr->left = subL,然后將ptr的右子樹斷開指向subR,此時(shí)便完成了旋轉(zhuǎn),最后將平衡因子進(jìn)行更新。

先右后左雙旋轉(zhuǎn)

先右單旋再左單旋,是先左后右的鏡像旋轉(zhuǎn),這里就不做贅述了。

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請查看下面相關(guān)鏈接

相關(guān)文章

  • SpringCache常用注解及key中參數(shù)值為null問題解析

    SpringCache常用注解及key中參數(shù)值為null問題解析

    這篇文章主要介紹了SpringCache常用注解及key中參數(shù)值為null的問題解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-09-09
  • SpringBoot2.1.4中的錯(cuò)誤處理機(jī)制

    SpringBoot2.1.4中的錯(cuò)誤處理機(jī)制

    這篇文章主要介紹了SpringBoot2.1.4中的錯(cuò)誤處理機(jī)制,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-10-10
  • 基于Java中throw和throws的區(qū)別(詳解)

    基于Java中throw和throws的區(qū)別(詳解)

    下面小編就為大家?guī)硪黄贘ava中throw和throws的區(qū)別(詳解)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-07-07
  • Java調(diào)用groovy實(shí)現(xiàn)原理代碼實(shí)例

    Java調(diào)用groovy實(shí)現(xiàn)原理代碼實(shí)例

    這篇文章主要介紹了Java調(diào)用groovy實(shí)現(xiàn)原理代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-12-12
  • Java構(gòu)造函數(shù)與普通函數(shù)用法詳解

    Java構(gòu)造函數(shù)與普通函數(shù)用法詳解

    本篇文章給大家詳細(xì)講述了Java構(gòu)造函數(shù)與普通函數(shù)用法以及相關(guān)知識點(diǎn),對此有興趣的朋友可以參考學(xué)習(xí)下。
    2018-03-03
  • log4j.properties 配置(實(shí)例講解)

    log4j.properties 配置(實(shí)例講解)

    下面小編就為大家?guī)硪黄猯og4j.properties 配置(實(shí)例講解)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-08-08
  • Java數(shù)據(jù)結(jié)構(gòu)之有向圖設(shè)計(jì)與實(shí)現(xiàn)詳解

    Java數(shù)據(jù)結(jié)構(gòu)之有向圖設(shè)計(jì)與實(shí)現(xiàn)詳解

    有向圖是具有方向性的圖,由一組頂點(diǎn)和一組有方向的邊組成,每條方向的邊都連著一對有序的頂點(diǎn)。本文為大家介紹的是有向圖的設(shè)計(jì)與實(shí)現(xiàn),需要的可以參考一下
    2022-11-11
  • 基于Java中最常用的集合類框架之HashMap(詳解)

    基于Java中最常用的集合類框架之HashMap(詳解)

    下面小編就為大家?guī)硪黄贘ava中最常用的集合類框架之HashMap(詳解)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-11-11
  • java中&與&&的區(qū)別

    java中&與&&的區(qū)別

    本文主要介紹了java中&與&&的區(qū)別,具有很好的參考價(jià)值。下面跟著小編一起來看下吧
    2017-03-03
  • Java使用HttpUtils實(shí)現(xiàn)發(fā)送HTTP請求

    Java使用HttpUtils實(shí)現(xiàn)發(fā)送HTTP請求

    這篇文章主要介紹了Java使用HttpUtils實(shí)現(xiàn)發(fā)送HTTP請求,HTTP請求,在日常開發(fā)中,還是比較常見的,今天給大家分享HttpUtils如何使用,需要的朋友可以參考下
    2023-05-05

最新評論

宜良县| 临夏市| 丰原市| 镇坪县| 南郑县| 新干县| 中卫市| 新沂市| 肥西县| 丹江口市| 黎川县| 周至县| 酒泉市| 宜兰市| 沛县| 兴和县| 凤阳县| 平昌县| 呈贡县| 犍为县| 永福县| 德安县| 肇东市| 朝阳区| 雅安市| 安吉县| 渭南市| 舞阳县| 铜陵市| 芦山县| 新巴尔虎右旗| 绍兴市| 禄丰县| 石家庄市| 阿拉善左旗| 浑源县| 永丰县| 巴中市| 股票| 凉山| 宿迁市|