B-樹是一種常見的數(shù)據(jù)結(jié)構(gòu)。和他一起的還有B+樹。
讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來自于我們對這個(gè)行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價(jià)值的長期合作伙伴,公司提供的服務(wù)項(xiàng)目有:域名與空間、雅安服務(wù)器托管、營銷軟件、網(wǎng)站建設(shè)、洮北網(wǎng)站維護(hù)、網(wǎng)站推廣。
在這里,需要澄清一下概念。B樹,B-樹,B+樹有什么區(qū)別?他們有什么關(guān)系呢?
其實(shí),從數(shù)據(jù)結(jié)構(gòu)來講只有2種,也就是B-樹和B+樹。有時(shí)候,B-樹又稱為B樹,他們是一個(gè)東西。請注意,B-樹中間的“-”是連字符,而不是“減號”。英文中是B-Tree,翻譯成中文后,也就是B樹,有的翻譯喜歡把連字符“-”也帶著,于是就成了B-樹,而B-樹被有些讀者誤讀為B減樹。
介紹B-樹之前,首先看一下一個(gè)重要的概念:階。
一個(gè)樹的階,就是這個(gè)樹中各個(gè)節(jié)點(diǎn)的子節(jié)點(diǎn)個(gè)數(shù)的最大值。也就是說,如果有的節(jié)點(diǎn)有2個(gè)子節(jié)點(diǎn),有的節(jié)點(diǎn)有4個(gè)子節(jié)點(diǎn),最多的有5個(gè)子節(jié)點(diǎn),那么,這個(gè)樹的階就是5.
從這個(gè)角度來講,二叉樹的階是2.
接下來,我們介紹一下B-樹的主要性質(zhì)。我們假定B-樹的階為m。一個(gè)m階的B-樹,要么是一個(gè)空樹,要么是具有如下性質(zhì)的樹:
1,每個(gè)節(jié)點(diǎn)最多有m個(gè)子節(jié)點(diǎn)。最少有m/2(向上取整)個(gè)節(jié)點(diǎn)。或者這么表述:m/2 <= 子節(jié)點(diǎn)個(gè)數(shù)<= m。但是根節(jié)點(diǎn)是例外的,根節(jié)點(diǎn)可以最少有2個(gè)子節(jié)點(diǎn)。
2,每個(gè)節(jié)點(diǎn)的子節(jié)點(diǎn)的個(gè)數(shù),比該節(jié)點(diǎn)中保存的關(guān)鍵字的個(gè)數(shù)多1. 也就是,當(dāng)節(jié)點(diǎn)中保存k個(gè)關(guān)鍵字時(shí),該節(jié)點(diǎn)會(huì)有k + 1個(gè)子節(jié)點(diǎn)(子樹)。
3,每個(gè)節(jié)點(diǎn)中的k個(gè)關(guān)鍵字是按照從小到到排列的,分別記為k1,k2,k3,......kk。那么該節(jié)點(diǎn)會(huì)有k+1個(gè)指針,記為p0,p1,p2,......pk。并且,p3所指向的子節(jié)點(diǎn)中的所有元素,都大于k3,且都小于k4. 如下圖所示。這一點(diǎn)也比較容易理解和記憶,各個(gè)指針p整好位于關(guān)鍵字k的插空的位置,所以,插空處的指針指向的子節(jié)點(diǎn)的元素的值,就理所當(dāng)然的應(yīng)該大于指針左邊的元素,小于指針右邊的元素。
4,B-樹是嚴(yán)格的平衡查找樹,它的左右子樹的高度是相等的。且葉子節(jié)點(diǎn)處于同一層,并且可以用空節(jié)點(diǎn)表示。
一個(gè)B-樹的例子:
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對創(chuàng)新互聯(lián)的支持。如果你想了解更多相關(guān)內(nèi)容請查看下面相關(guān)鏈接