您好,登錄后才能下訂單哦!
這篇文章主要介紹“什么是紅黑樹”的相關(guān)知識(shí),小編通過實(shí)際案例向大家展示操作過程,操作方法簡(jiǎn)單快捷,實(shí)用性強(qiáng),希望這篇“什么是紅黑樹”文章能幫助大家解決問題。
想必大家對(duì)二叉樹搜索樹都不陌生,首先看一下二叉搜索樹的定義:
二叉搜索樹(Binary Search Tree),或者是一棵空樹,或者是具有下列性質(zhì)的二叉樹:若它的左子樹不空,則左子樹上所有結(jié)點(diǎn)的值均小于它的根結(jié)點(diǎn)的值;若它的右子樹不空,則右子樹上所有結(jié)點(diǎn)的值均大于它的根結(jié)點(diǎn)的值;它的左、右子樹也分別為二叉排序樹。
從理論上來說,二叉搜索樹的查詢、插入和刪除一個(gè)節(jié)點(diǎn)的時(shí)間復(fù)雜度均為O(log(n)),已經(jīng)完全可以滿足我們的要求了,那么為什么還要有紅黑樹呢?
我們來看一個(gè)例子,向二叉搜索樹中依次插入(1,2,3,4,5,6),插入之后是這樣的
一般我們接觸最多的是二叉樹,也就是一個(gè)父節(jié)點(diǎn)最多有兩個(gè)子節(jié)點(diǎn)。2-3樹與二叉樹的不同之處在于,一個(gè)父節(jié)點(diǎn)可以有兩個(gè)子節(jié)點(diǎn),也可以有三個(gè)子節(jié)點(diǎn),并且其也滿足類似二叉搜索樹的性質(zhì)。還有最重要的,2-3樹的所有葉子節(jié)點(diǎn)都在同一層,且最后一層不能有空節(jié)點(diǎn),類似于滿二叉樹。
我們依次插入10,9,8,7,6,5,4,3,2,1來看一下2-3數(shù)是如何進(jìn)行自平衡的。
2-3樹在插入元素之前首先要進(jìn)行一次未命中的查找,然后將元素插入葉子節(jié)點(diǎn)中,之后再進(jìn)行平衡操作,下面具體說明。
首先插入10,如下圖
那么紅黑樹與2-3樹有什么關(guān)系呢?現(xiàn)在我們對(duì)2-3樹進(jìn)行改造,改造成一個(gè)二叉樹。怎么改造呢?對(duì)于2節(jié)點(diǎn),保持不變;對(duì)于3節(jié)點(diǎn),我們首先將3節(jié)點(diǎn)中左側(cè)的元素標(biāo)記為紅色,如下圖2所示。
關(guān)于“什么是紅黑樹”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí),可以關(guān)注億速云行業(yè)資訊頻道,小編每天都會(huì)為大家更新不同的知識(shí)點(diǎn)。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。