国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

11.5平衡二叉樹(AVL樹)

2022-01-19 22:35 作者:取悅疾風(fēng)  | 我要投稿

內(nèi)容來自尚硅谷Java數(shù)據(jù)結(jié)構(gòu)與java算法(Java數(shù)據(jù)結(jié)構(gòu)與算法)_嗶哩嗶哩_bilibili

寫在前面:本文內(nèi)容大致和原視頻內(nèi)老師的筆記內(nèi)容相同,會(huì)偶爾插入自己的注釋和理解,盡量會(huì)完成作業(yè)

11.5平衡二叉樹(AVL樹)

11.5.1看一個(gè)案例(說明二叉排序樹可能的問題)

給你一個(gè)數(shù)列{1,2,3,4,5,6},要求創(chuàng)建一棵二叉排序樹(BST),并分析問題所在

左子樹全部為空,從形式上看,更像一個(gè)單鏈表

1.????? 插入速度沒有影響

2.????? 查詢速度明顯降低(因?yàn)樾枰来伪容^)。

3.????? 不能發(fā)揮BST的優(yōu)勢,因?yàn)槊看芜€需要比較左子樹,其查詢速度比單鏈表還慢,

4.????? 解決方案-平衡二叉樹(AVL)

11.5.2基本介紹

1.????? 平衡二叉樹也叫平衡二叉搜索樹(Self-balancing binary search tree)又被稱為AVL樹,可以保證查詢效率較高。

2.????? 具有以下特點(diǎn):它是一棵空樹或它的左右兩個(gè)子樹的高度差的絕對(duì)值不超過1,并且左右兩個(gè)子樹都是一棵平衡二叉樹。平衡二叉樹的常用實(shí)現(xiàn)方法有紅黑樹、AVL、替罪羊樹、Treap、伸展樹等。

3.????? 舉例說明,看看下面哪些AVL樹,為什么?

11.5.3應(yīng)用案例-單旋轉(zhuǎn)(左旋轉(zhuǎn))

要求:給你一個(gè)數(shù)列,創(chuàng)建出對(duì)應(yīng)的平衡二叉樹.數(shù)列{4,3,6,5,7,8}

思路分析(示意圖)

代碼實(shí)現(xiàn)

11.5.4應(yīng)用案例-單旋轉(zhuǎn)(右旋轉(zhuǎn))

要求:給你一個(gè)數(shù)列,創(chuàng)建出對(duì)應(yīng)的平衡二叉樹.數(shù)列{10,12,8,9,7,6}

思路分析(示意圖)

代碼實(shí)現(xiàn)

11.5.5應(yīng)用案例-雙旋轉(zhuǎn)

前面的兩個(gè)數(shù)列,進(jìn)行單旋轉(zhuǎn)(即一次旋轉(zhuǎn))就可以將非平衡二叉樹轉(zhuǎn)成平衡二叉樹,但是在某些情況下,單旋轉(zhuǎn)不能完成平衡二叉樹的轉(zhuǎn)換。比如數(shù)列

int[]arr = { 10,11,7,6,8,9};運(yùn)行原來的代碼可以看到,并沒有轉(zhuǎn)成AVL樹.

int[]arr= {2,1,6,5,7,3};//運(yùn)行原來的代碼可以看到,并沒有轉(zhuǎn)成AVL樹

1.問題分析

2.解決思路分析

(1)當(dāng)符號(hào)右旋轉(zhuǎn)的條件時(shí)

(2)如果它的左子樹的右子樹高度大于它的左子樹的高度

(3)先對(duì)當(dāng)前這個(gè)結(jié)點(diǎn)的左節(jié)點(diǎn)進(jìn)行左旋轉(zhuǎn)

(4)在對(duì)當(dāng)前結(jié)點(diǎn)進(jìn)行右旋轉(zhuǎn)的操作即可

代碼實(shí)現(xiàn)(AVL樹的完整匯總代碼)


11.5平衡二叉樹(AVL樹)的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國家法律
怀宁县| 新野县| 东乡族自治县| 连州市| 台江县| 策勒县| 清水县| 日土县| 台湾省| 龙里县| 合江县| 团风县| 芜湖县| 滦南县| 离岛区| 乐山市| 闽清县| 元氏县| 柯坪县| 雷州市| 东乡| 佛山市| 和龙市| 星座| 西林县| 垦利县| 西城区| 丹巴县| 扬州市| 淳化县| 汝南县| 霍城县| 德兴市| 阿坝| 遂昌县| 黄平县| 安顺市| 南皮县| 宜都市| 噶尔县| 九龙县|