Knuth の定義によると、次数 m (各ノードの子の最大数) の B ツリーは、次のプロパティを満たすツリーです。
(1) すべてのノードは最大で m 個の子を持ちます。
(2) すべてのノード (ルートを除く) には、少なくとも ⌈m⁄2⌉ の子があります。
(3) ルートがリーフ ノードでない場合、ルートには少なくとも 2 つの子があります。
(4) k 個の子を持つ非リーフ ノードには、k-1 個のキーが含まれます。
(5) すべての葉は同じレベルに現れ、情報を運ぶ。
出典:ウィキペディア
B ツリーのいくつかの視覚化は次のようになります。
この視覚化から、各ノードには配列データ構造 (または少なくとも同様のもの) があると思います。
その他は次のようになります。
これはリストのようなデータ構造のように見えます。
だから私の質問は:
Bツリーはどのデータ構造を使用しますか?
私のアルゴリズム クラスでの使用例は、データベースとファイル システムでした。SQLiteが B ツリー ノードを実装する方法を知っている人はいますか? またはext3?または、他の(よく知られている)実世界の例はありますか?