這篇文章將為大家詳細(xì)講解有關(guān)B-樹如何插入,小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。
創(chuàng)新互聯(lián)成都網(wǎng)站建設(shè)定制制作,是成都網(wǎng)站營(yíng)銷推廣公司,為成都濕噴機(jī)提供網(wǎng)站建設(shè)服務(wù),有成熟的網(wǎng)站定制合作流程,提供網(wǎng)站定制設(shè)計(jì)服務(wù):原型圖制作、網(wǎng)站創(chuàng)意設(shè)計(jì)、前端HTML5制作、后臺(tái)程序開發(fā)等。成都網(wǎng)站設(shè)計(jì)熱線:13518219792插入過(guò)程和樹的構(gòu)建過(guò)程本質(zhì)是一致的,即都是進(jìn)行插入操作,并對(duì)插入后的B-樹進(jìn)行調(diào)整。
我們?cè)O(shè)定B-樹的階為5。用關(guān)鍵字序列{1,2,6,7,11,4,8,13,10,5,17,9,16,20,3,12,14,18,19,15}來(lái)構(gòu)建一棵B-樹。
因?yàn)闃涞碾A為5,那么,每個(gè)節(jié)點(diǎn)最多有5個(gè)子節(jié)點(diǎn),每個(gè)節(jié)點(diǎn)內(nèi)的關(guān)鍵字個(gè)數(shù)為3~4個(gè)。
于是,第一步是插入1,2,6,7作為一個(gè)節(jié)點(diǎn)。
然后插入11,得到1,2,6,7,11. 因?yàn)楣?jié)點(diǎn)個(gè)數(shù)超過(guò)4,所以需要對(duì)該節(jié)點(diǎn)進(jìn)行拆分。選取中間節(jié)點(diǎn)6,進(jìn)行提升,提升為父節(jié)點(diǎn),于是得到:
有一個(gè)規(guī)則是新插入的節(jié)點(diǎn)總是出現(xiàn)在葉子節(jié)點(diǎn)上,接著插入4,8,13,直接插入即可,得到
然后插入10. 得到
因?yàn)樽钣蚁碌墓?jié)點(diǎn)內(nèi)有5個(gè)元素,超過(guò)大個(gè)數(shù)4了,所以需要進(jìn)行拆分,把中間節(jié)點(diǎn)10進(jìn)行提升,上升到和6一起,形成如下結(jié)構(gòu)。
然后插入5,17,9,16,得到如下
之后插入20,插入20后,最右下節(jié)點(diǎn)內(nèi)元素個(gè)數(shù)為5個(gè),超過(guò)大個(gè)數(shù)4個(gè),所以,需要把16進(jìn)行提升,形成如下結(jié)構(gòu)
之后插入3、12、14、18、19,后,形成如下結(jié)構(gòu)。
然后插入15,會(huì)導(dǎo)致13提升到根節(jié)點(diǎn),這時(shí),根節(jié)點(diǎn)會(huì)有5個(gè)節(jié)點(diǎn),那么,根節(jié)點(diǎn)中的10會(huì)再次進(jìn)行提升,形成如下結(jié)構(gòu)。
結(jié)束。
關(guān)于“B-樹如何插入”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。