m階b樹m指的什么意思 tree命令使用

畢業(yè)照2022-08-04 10:11:563306

在數(shù)據(jù)結(jié)構(gòu)中m階B樹是什么意思呀?B-樹的定義,二叉樹的階數(shù)是什么?“m階B樹”這里的“m階”是什么意思?m階b樹是什么意思?b tree 和 b+ tree 的區(qū)別,什么是樹的階數(shù)?

本文導(dǎo)航

數(shù)據(jù)結(jié)構(gòu)中樹的深度與高度

B-樹的定義

  一棵m(m≥3)階的B-樹是滿足如下性質(zhì)的m叉樹:

(1)每個(gè)結(jié)點(diǎn)至少包含下列數(shù)據(jù)域:

(j,P 0 ,K l ,P 1 ,K 2 ,…,K i ,P i )

其中:

j為關(guān)鍵字總數(shù)

K i (1≤i≤j)是關(guān)鍵字,關(guān)鍵字序列遞增有序:K 1 <K 2 <…<K i 。

P i (0≤i≤j)是孩子指針。對(duì)于葉結(jié)點(diǎn),每個(gè)P i 為空指針。

注意:

  ①實(shí)用中為節(jié)省空間,葉結(jié)點(diǎn)中可省去指針域P i ,但必須在每個(gè)結(jié)點(diǎn)中增加一個(gè)標(biāo)志域leaf,其值為真時(shí)表示葉結(jié)點(diǎn),否則為

內(nèi)部結(jié)點(diǎn)。

  ②在每個(gè)內(nèi)部結(jié)點(diǎn)中,假設(shè)用keys(Pi)來表示子樹Pi中的所有關(guān)鍵字,則有:

  keys(P 0 )<K 1 <keys(P 1 )<K 2 <…<K i <keys(P i )

即關(guān)鍵字是分界點(diǎn),任一關(guān)鍵字Ki左邊子樹中的所有關(guān)鍵字均小于K i ,右邊子樹中的所有關(guān)鍵字均大于K i 。

(2)所有葉子是在同一層上,葉子的層數(shù)為樹的高度h。

(3)每個(gè)非根結(jié)點(diǎn)中所包含的關(guān)鍵字個(gè)數(shù)j滿足:

(4)若樹非空,則根至少有1個(gè)關(guān)鍵字,故若根不是葉子,則它至少有2棵子樹。根至多有m-1個(gè)關(guān)鍵字,故至多有m棵子樹。

多叉樹的定義

B-樹是一種多路搜索樹(并不一定是二叉的)1970年,R.Bayer和E.mccreight提出了一種適用于外查找的樹,它是一種平衡的多叉樹,稱為B樹(或B-樹、B_樹)。一棵m階B樹(balanced tree of order m)是一棵平衡的m路搜索樹。它或者是空樹,或者是滿足下列性質(zhì)的樹:1、根結(jié)點(diǎn)至少有兩個(gè)子女;2、每個(gè)非根節(jié)點(diǎn)所包含的關(guān)鍵字個(gè)數(shù) j 滿足:┌m/2┐ - 1 <= j <= m - 1;3、除根結(jié)點(diǎn)以外的所有結(jié)點(diǎn)(不包括葉子結(jié)點(diǎn))的度數(shù)正好是關(guān)鍵字總數(shù)加1,故內(nèi)部子樹個(gè)數(shù) k 滿足:┌m/2┐ <= k <= m ;4、所有的葉子結(jié)點(diǎn)都位于同一層。在B-樹中,每個(gè)結(jié)點(diǎn)中關(guān)鍵字從小到大排列,并且當(dāng)該結(jié)點(diǎn)的孩子是非葉子結(jié)點(diǎn)時(shí),該k-1個(gè)關(guān)鍵字正好是k個(gè)孩子包含的關(guān)鍵字的值域的分劃。因?yàn)槿~子結(jié)點(diǎn)不包含關(guān)鍵字,所以可以把葉子結(jié)點(diǎn)看成在樹里實(shí)際上并不存在外部結(jié)點(diǎn),指向這些外部結(jié)點(diǎn)的指針為空,葉子結(jié)點(diǎn)的數(shù)目正好等于樹中所包含的關(guān)鍵字總個(gè)數(shù)加1。B-樹中的一個(gè)包含n個(gè)關(guān)鍵字,n+1個(gè)指針的結(jié)點(diǎn)的一般形式為: (n,P0,K1,P1,K2,P2,…,Kn,Pn)其中,Ki為關(guān)鍵字,K1<K2<…<Kn, Pi 是指向包括Ki到Ki+1之間的關(guān)鍵字的子樹的指針。

二叉樹的深度和層數(shù)一樣嗎

二叉樹的階數(shù)是一個(gè)節(jié)點(diǎn)的子節(jié)點(diǎn)數(shù)目的最大值。對(duì)于一棵m階B-tree,每個(gè)結(jié)點(diǎn)至多可以擁有m個(gè)子結(jié)點(diǎn)。

各結(jié)點(diǎn)的關(guān)鍵字和可以擁有的子結(jié)點(diǎn)數(shù)都有限制,規(guī)定m階B-tree中,根結(jié)點(diǎn)至少有2個(gè)子結(jié)點(diǎn),除非根結(jié)點(diǎn)為葉子節(jié)點(diǎn);

相應(yīng)的,根結(jié)點(diǎn)中關(guān)鍵字的個(gè)數(shù)為1~m-1,比節(jié)點(diǎn)數(shù)目少一個(gè);非根結(jié)點(diǎn)至少有[m/2]([],向上取整)個(gè)子結(jié)點(diǎn),相應(yīng)的,關(guān)鍵字個(gè)數(shù)為[m/2]-1~m-1。

擴(kuò)展資料

1、M為樹的階數(shù),B-樹或?yàn)榭諛?,否則滿足下列條件:定義任意非葉子結(jié)點(diǎn)最多只有M個(gè)兒子;且M>2;

2、根結(jié)點(diǎn)的兒子數(shù)為[2, M];

3、除根結(jié)點(diǎn)以外的非葉子結(jié)點(diǎn)的兒子數(shù)為[M/2, M];

4、每個(gè)結(jié)點(diǎn)存放至少M(fèi)/2(取上整)-1和至多M-1個(gè)關(guān)鍵字;(至少2個(gè)關(guān)鍵字,根節(jié)點(diǎn)至少一個(gè)關(guān)鍵字);

5、非葉子結(jié)點(diǎn)的關(guān)鍵字個(gè)數(shù)=指向兒子的指針個(gè)數(shù)-1;

6、非葉子結(jié)點(diǎn)的關(guān)鍵字:K[1], K[2], …, K[m-1],m<M+1;且K[i]< K[i+1] ;

7、非葉子結(jié)點(diǎn)的指針:P[1], P[2], …, P[m];其中P[1]指向關(guān)鍵字小于K[1]的子樹,P[m]指向關(guān)鍵字大于K[m-1]的子樹,其它P[i]指向關(guān)鍵字屬于(K[i-1], K[i])的子樹;

參考資料來源:百度百科-階數(shù)

什么是一級(jí)樹形

m階為一節(jié)點(diǎn)至多有m棵子樹

,也就是說B樹上的結(jié)點(diǎn)最多只能有m棵子樹。。。

tree命令使用

一、B樹的起源

B樹,最早是由德國計(jì)算機(jī)科學(xué)家Rudolf Bayer等人于1972年在論文 《Organization and Maintenance of Large Ordered Indexes》提出的,不過我去看了看原文,發(fā)現(xiàn)作者也沒有解釋為什么就叫B-trees了,所以把B樹的B,簡(jiǎn)單地解釋為Balanced或者Binary都不是特別嚴(yán)謹(jǐn),也許作者就是取其名字Bayer的首字母命名的也說不定啊……

二、B樹長啥樣

還是直接看圖比較清楚,圖中所示,B樹事實(shí)上是一種平衡的多叉查找樹,也就是說最多可以開m個(gè)叉(m>=2),我們稱之為m階b樹,為了體現(xiàn)本博客的良心之處,不同于其他地方都能看到2階B樹,這里特意畫了一棵5階B樹 。

總的來說,m階B樹滿足以下條件:

每個(gè)節(jié)點(diǎn)至多可以擁有m棵子樹

根節(jié)點(diǎn),只有至少有2個(gè)節(jié)點(diǎn)(要么極端情況,就是一棵樹就一個(gè)根節(jié)點(diǎn),單細(xì)胞生物,即是根,也是葉,也是樹)

非根非葉的節(jié)點(diǎn)至少有的Ceil(m/2)個(gè)子樹(Ceil表示向上取整,圖中5階B樹,每個(gè)節(jié)點(diǎn)至少有3個(gè)子樹,也就是至少有3個(gè)叉)

非葉節(jié)點(diǎn)中的信息包括[n,A0,K1,A1,K2,A2,…,Kn,An],,其中n表示該節(jié)點(diǎn)中保存的關(guān)鍵字個(gè)數(shù),K為關(guān)鍵字且Ki<Ki+1,A為指向子樹根節(jié)點(diǎn)的指針

從根到葉子的每一條路徑都有相同的長度,也就是說,葉子節(jié)在相同的層,并且這些節(jié)點(diǎn)不帶信息,實(shí)際上這些節(jié)點(diǎn)就表示找不到指定的值,也就是指向這些節(jié)點(diǎn)的指針為空

B樹的查詢過程和二叉排序樹比較類似,從根節(jié)點(diǎn)依次比較每個(gè)結(jié)點(diǎn),因?yàn)槊總€(gè)節(jié)點(diǎn)中的關(guān)鍵字和左右子樹都是有序的,所以只要比較節(jié)點(diǎn)中的關(guān)鍵字,或者沿著指針就能很快地找到指定的關(guān)鍵字,如果查找失敗,則會(huì)返回葉子節(jié)點(diǎn),即空指針

例如查詢圖中字母表中的K

從根節(jié)點(diǎn)P開始,K的位置在P之前,進(jìn)入左側(cè)指針

左子樹中,依次比較C、F、J、M,發(fā)現(xiàn)K在J和M之間

沿著J和M之間的指針,繼續(xù)訪問子樹,并依次進(jìn)行比較,發(fā)現(xiàn)第一個(gè)關(guān)鍵字K即為指定查找的值

三、Plus版——B+樹

作為B樹的加強(qiáng)版,B+樹與B樹的差異在于:

有n棵子樹的節(jié)點(diǎn)含有n個(gè)關(guān)鍵字(也有認(rèn)為是n-1個(gè)關(guān)鍵字)

所有的葉子節(jié)點(diǎn)包含了全部的關(guān)鍵字,及指向含這些關(guān)鍵字記錄的指針,且葉子節(jié)點(diǎn)本身根據(jù)關(guān)鍵字自小而大順序連接

非葉子節(jié)點(diǎn)可以看成索引部分,節(jié)點(diǎn)中僅含有其子樹(根節(jié)點(diǎn))中的最大(或最?。╆P(guān)鍵字

請(qǐng)點(diǎn)擊輸入圖片描述

B+樹的查找過程,與B樹類似,只不過查找時(shí),如果在非葉子節(jié)點(diǎn)上的關(guān)鍵字等于給定值,并不終止,而是繼續(xù)沿著指針直到葉子節(jié)點(diǎn)位置。因此在B+樹,不管查找成功與否,每次查找都是走了一條從根到葉子節(jié)點(diǎn)的路徑

樹的直徑以什么高度計(jì)算

b樹是一種用于查找的數(shù)據(jù)結(jié)構(gòu)

m階表示m路查找

m為2時(shí)就是二叉b樹,也即平衡二叉樹

掃描二維碼推送至手機(jī)訪問。

版權(quán)聲明:本文由尚恩教育網(wǎng)發(fā)布,如需轉(zhuǎn)載請(qǐng)注明出處。

本文鏈接:http://www.lmix.com.cn/view/30107.html

標(biāo)簽: 學(xué)習(xí)

“m階b樹m指的什么意思 tree命令使用” 的相關(guān)文章

重慶市重點(diǎn)中學(xué) 目前重慶重點(diǎn)中學(xué)排名

重慶市重點(diǎn)中學(xué) 目前重慶重點(diǎn)中學(xué)排名

重慶市排名前十的中學(xué)是哪十個(gè)啊重慶市重點(diǎn)中學(xué)排名,重慶前50名重點(diǎn)中學(xué),2021重慶前50名重點(diǎn)中學(xué)。本文導(dǎo)航重慶前十名中學(xué)排名榜目前重慶重點(diǎn)中學(xué)排名重慶市高中排名前100中學(xué)重慶前十名中學(xué)排名榜1 重慶一中 2 南開中學(xué) 3 重慶八中4 育才中學(xué) 5 巴蜀中學(xué) 6 外語學(xué)校7 西師附中 8 求精中...

文學(xué)類怎么背 閱讀題怎么讓孩子背誦

如何背好文學(xué)常識(shí)?怎么背枯燥的文學(xué)史和文學(xué)理論?中國古代文學(xué)怎么背???自考文學(xué)概論該怎么去記憶?讓孩子背文學(xué)常識(shí)有什么快捷方法?古代文學(xué)怎么背誦?本文導(dǎo)航如何背好文學(xué)常識(shí)?怎么背枯燥的文學(xué)史和文學(xué)理論?中國古代文學(xué)怎么背啊自考文學(xué)概論該怎么去記憶閱讀題怎么讓孩子背誦古代文學(xué)怎么背誦如何背好文學(xué)常識(shí)?...

herring怎么讀 鰳是什么字的繁體?怎么讀?

herring怎么讀 鰳是什么字的繁體?怎么讀?

鯡,這字怎么讀?這兩個(gè)字怎么讀?鯡魚是什么魚?怎么讀?這兩個(gè)字怎么念啊?鰳是什么字的繁體?怎么讀?“鯡魚”用英語怎么說?本文導(dǎo)航鯡,這字怎么讀?這兩個(gè)字怎么讀鯡魚是什么魚?怎么讀這兩個(gè)字怎么念啊?鰳是什么字的繁體?怎么讀?“鯡魚”用英語怎么說鯡,這字怎么讀?鯡讀fēi 基本字義1. 〔~魚〕體側(cè)扁而...

2019數(shù)二靠什么 2019年全國2卷理科數(shù)學(xué)

2019數(shù)二靠什么 2019年全國2卷理科數(shù)學(xué)

2019碩士研究生考試數(shù)二國家線多少?全國計(jì)算機(jī)二級(jí)都考什么內(nèi)容?2019數(shù)學(xué)全國二卷高考理科填空順序,是橫還是豎。本文導(dǎo)航2019年研究生國家線多少計(jì)算機(jī)二級(jí)證都考什么內(nèi)容2019年全國2卷理科數(shù)學(xué)2019年研究生國家線多少2019年考研數(shù)學(xué)分?jǐn)?shù)線大約在70至75之間,經(jīng)濟(jì)類的大約在75-80之間...

學(xué)考成績什么時(shí)候出來 2021年7月浙江省學(xué)考成績查詢時(shí)間

學(xué)考成績什么時(shí)候出來 2021年7月浙江省學(xué)考成績查詢時(shí)間

湖南學(xué)考成績一般什么時(shí)候出?2020年7月浙江省學(xué)考成績什么時(shí)候出?2021年7月浙江學(xué)考成績什么時(shí)候出?2021浙江7月學(xué)考什么時(shí)候出成績?2021年7月學(xué)考成績什么時(shí)候出?2021湖南學(xué)考成績什么時(shí)候出?本文導(dǎo)航湖南2022年學(xué)考成績什么時(shí)候發(fā)布浙江2022學(xué)考7月啥時(shí)候出成績2021年7月浙江...

怎么知道考數(shù)一數(shù)二 怎么判斷考研是數(shù)學(xué)一還是數(shù)學(xué)二?

怎么知道自己是考數(shù)一還是數(shù)二,還是數(shù)3,是看專業(yè)還是學(xué)校啊。還有英語分123嗎政治呢?怎么確定考數(shù)學(xué)幾?數(shù)學(xué)一二三都是怎么分的啊,怎么知道自己考數(shù)學(xué)幾?怎么判斷考研是數(shù)學(xué)一還是數(shù)學(xué)二?怎么才能知道自己考研是數(shù)學(xué)一還是二?考研怎么知道考數(shù)幾?本文導(dǎo)航怎么知道自己是考數(shù)一還是數(shù)二,還是數(shù)3,是看專業(yè)還是...

發(fā)表評(píng)論

訪客

◎歡迎參與討論,請(qǐng)?jiān)谶@里發(fā)表您的看法和觀點(diǎn)。