日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > java >内容正文

java

Java数据结构——2-3树

發(fā)布時間:2024/4/17 java 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java数据结构——2-3树 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

定義
2-3樹是平衡的3路查找樹,其中2(2-node)是指擁有兩個分支的節(jié)點,3(3-node)是指擁有三個分支的節(jié)點。B-樹是一種平衡的多路查找樹,2-3樹屬于b-樹,其也同樣具有B-樹的性質(zhì),如m階B-樹,節(jié)點至多有m個分支、m-1個關(guān)鍵字;內(nèi)部節(jié)點的分支數(shù)至少為m/2取上限;所有葉節(jié)點都出現(xiàn)在同一層次上,并且不帶任何信息(這是由構(gòu)造樹的邏輯決定的,實際上指向這些節(jié)點的引用為null)。


2-3查找樹的定義如下:
1 對于2節(jié)點,該節(jié)點保存一個key及對應(yīng)value,以及兩個指向左右節(jié)點的節(jié)點,左節(jié)點也是一個2-3節(jié)點,所有的值都比key有效,有節(jié)點也是一個2-3節(jié)點,所有的值比key要大。
2. 對于3節(jié)點,該節(jié)點保存兩個key及對應(yīng)value,以及三個指向左中右的節(jié)點。左節(jié)點也是一個2-3節(jié)點,所有的值均比兩個key中的最小的key還要小;中間節(jié)點也是一個2-3節(jié)點,中間節(jié)點的key值在兩個跟節(jié)點key值之間;右節(jié)點也是一個2-3節(jié)點,節(jié)點的所有key值比兩個key中的最大的key還要大。

?

插入
永遠(yuǎn)都是在葉節(jié)點處插入新節(jié)點,當(dāng)3-node變?yōu)?-node時,需要拆分節(jié)點,此時樹高就有可能增加。

刪除
刪除節(jié)點比插入節(jié)點麻煩一些,先來看刪除底部節(jié)點,在搜索過程中就需要對節(jié)點做相應(yīng)的變化,以保證搜索路徑上的都是3-node或臨時的4-node,在刪除當(dāng)前節(jié)點T時,T一定是3-node或4-node,就可以安全刪除了,刪除之后樹的變化規(guī)則與插入一致。刪除其他節(jié)點可以轉(zhuǎn)化為刪除底部節(jié)點,只需要將刪除元素與底部節(jié)點元素交換即可。


總結(jié)
2-3樹作為一種平衡查找樹,查詢效率比普通的二叉排序樹要穩(wěn)定許多,其操作邏輯也非常清晰。2-3樹可以采用紅黑樹實現(xiàn),使用二叉樹結(jié)構(gòu)從邏輯上模擬了2-3樹,在插入刪除節(jié)點時,又具有二叉平衡樹的便利。

轉(zhuǎn)載于:https://www.cnblogs.com/ericz2j/p/10750893.html

總結(jié)

以上是生活随笔為你收集整理的Java数据结构——2-3树的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。