資料結構之 多路查詢樹

2021-10-06 12:54:58 字數 958 閱讀 6739

計算機的儲存一般分為兩種:1、記憶體儲存,2、硬碟儲存

記憶體的儲存一般用作cpu的快取記憶體,而我們的硬碟的資料可永久儲存。現在我們使用的硬碟一般分為機械硬碟和固態硬碟兩種,前者的讀取資料速度較慢,但是造價低,後者讀取資料速度快,但是造價較高。考慮到成本因數,一般較多使用的還是機械硬碟。因為機械硬碟的讀取資料較慢,所以我們在讀取機械硬碟的資料時,要儘量減少io操作。通常情況下,計算機在讀取資料的時候,不會將全部的資料都讀取出來,一般會讀取一定長度的資料放入記憶體中去,讀取資料的長度基本單位我們用頁來表示。頁是計算機管理儲存器的邏輯塊,硬體及作業系統往往將主存和磁碟儲存區分割為連續大小相等的塊,每乙個儲存塊稱為一頁(一般為4k)。我們將乙個節點的大小看作一頁,這樣我們在每乙個節點上讀取資料只需要進行一次io操作即可。

如下圖所示,如果用二叉樹來作為讀取的資料結構的話,由於二叉樹最多只能有兩個節點,那麼必然會導致樹的高度增加,那麼在讀取乙個高度比較高的節點的時候,就會進行多次的io操作,這樣會導致資料讀取的效能下降。

為了解決這種問題,我們引入了b樹的資料結構,如下圖所示。其實就是增加了同乙個高度的節點數。這樣我們在讀取資料的時候就可以減少io操作。接下來下面我們來介紹一下b樹。

在b樹中我們規定所有的葉子節點都在同一層;

1、有兩個子節點的節點叫二節點,二節點要麼有兩個子節點,要麼沒有節點,

2、有三個節點的節點叫三節點,三節點要麼有三個子節點,要麼沒有節點。

在b樹中,我們用階來表示最高節點數。比如2-3樹稱為3階b數,2-3-4樹稱為4階b數。

b+數的葉子節點用來儲存資料,非葉子節點只用來儲存索引資訊,葉子節點最右邊的指標指向下乙個相鄰的葉子節點,所有的葉子節點組成乙個有序鍊錶。

資料結構 多路查詢樹概念

目錄 二叉樹問題分析 多叉樹b樹的基本介紹 2 3樹 構建規則 應用舉例 b 樹的介紹 b 樹的介紹 二叉樹的操作效率高,但是也存在問題,如下 問題一 在構建二叉樹時,需要多次進行i o操作 海量資料存在資料庫或檔案中 節點海量,構建樹時,速度有影響 問題二 節點海量,也會造成二叉樹的高度很大,會降...

多路查詢樹之2 3樹 資料結構和演算法79

讓程式設計改變世界 change the world by program 關於多路查詢樹的講解,我們在這系列教程中主要以b樹來講。別誤會哈,小甲魚沒有罵人,ta真就叫b樹,b 樹。但是我們現在還不能直接講這個,因為直接講不容易接受,所以我們先談下b樹的兩個特例 2 3樹和2 3 4樹。我們要談b樹...

多路查詢樹

二叉樹的操作效率較高,但是也存在問題,請看下面的二叉樹 二叉樹需要載入到記憶體的,如果二叉樹的節點少,沒有什麼問題,但是如果二叉樹的節點很多 比如1億 就 存在如下問題 問題1 在構建二叉樹時,需要多次進行i o操作 海量資料存在資料庫或檔案中 節點海量,構建二叉樹時,速度有影響 問題2 節點海量,...