Bツリー挿入プロセスの概要

Bツリー挿入プロセスの概要

前回の記事 https://www.jb51.net/article/154153.htm では、B ツリーの特性を紹介しました。この記事では、B ツリーの挿入プロセスを紹介します。

挿入プロセスとツリー構築プロセスは本質的に同じです。つまり、どちらも挿入操作を実行し、挿入後に B ツリーを調整します。

B ツリーの次数を 5 に設定します。キーシーケンス {1,2,6,7,11,4,8,13,10,5,17,9,16,20,3,12,14,18,19,15} を使用して B ツリーを構築します。

ツリーの次数は 5 なので、各ノードには最大 5 つの子ノードがあり、各ノードのキーワードの数は 3 ~ 4 です。

したがって、最初のステップは、1、2、6、7 をノードとして挿入することです。

次に 11 を挿入すると、1、2、6、7、11 が得られます。ノード数が 4 を超えるため、ノードを分割する必要があります。中間のノード 6 を選択し、それを親ノードに昇格すると、次のようになります。

新しく挿入されたノードは常にリーフノードに現れるというルールがあります。次に4、8、13を直接挿入すると、次のようになります。

次に10を挿入します。

右下のノードには 5 つの要素があり、最大数の 4 を超えているため、分割する必要があり、中央のノード 10 は 6 と一緒に昇格されて次の構造を形成します。

次に5、17、9、16を挿入すると次のようになります。

次に20を挿入します。20を挿入した後、右下のノードの要素数は5になり、最大数の4を超えます。したがって、次の構造を形成するには16を増やす必要があります。

次に、3、12、14、18、19 を挿入して次の構造を形成します。

次に 15 を挿入すると、13 がルート ノードに昇格されます。この時点で、ルート ノードには 5 つのノードがあります。次に、ルート ノードの 10 が再び昇格され、次の構造が形成されます。

仕上げる。

要約する

以上がこの記事の全内容です。この記事の内容が皆様の勉強や仕事に何らかの参考学習価値をもたらすことを願います。123WORDPRESS.COM をご愛顧いただき、誠にありがとうございます。これについてもっと知りたい場合は、次のリンクをご覧ください。

以下もご興味があるかもしれません:
  • Bツリーの特性の紹介
  • MySQL ハッシュインデックスと B ツリーインデックスの違い
  • SQLite における B ツリー実装の詳細の分析
  • ビットマップインデックスとBツリーインデックスのどちらを使用するかを選択する方法
  • BツリーとB+ツリーの使用に基づくデータ検索とデータベースインデックスの詳細な紹介
  • MySQL Bツリーインデックスとインデックス最適化の概要についての簡単な説明
  • 完全なBツリーアルゴリズムのJava実装コード
  • C言語Bツリーの深い理解
  • Bツリーの削除プロセスの紹介

<<:  Bツリーの特性の紹介

>>:  Vueストレージにはブール値のソリューションが含まれています

推薦する

MySQLソートにおけるCASE WHENの使用例

序文以前のプロジェクトでは、SQL の CASE WHEN ソート関数が使用されました。ではブログメ...

MySQL インデックス プッシュダウンを 5 分で学ぶ

目次序文インデックス プッシュダウンとは何ですか?インデックスプッシュダウン最適化の原理インデックス...

MySQL/MariaDB でピボット テーブルを実装する方法のサンプル コード

前回の記事では、Oracle でピボット テーブルを実装するいくつかの方法を紹介しました。今日は、同...

CSS3で跳ねるボールのアニメーションを実現

私は通常、大手ウェブサイトの特別ページや製品リリースページを訪問するのが好きです。なぜなら、たくさん...

Linuxの一般的なコマンドでLinuxのmoreコマンドを使用する方法

more は、最もよく使用されるツールの 1 つです。最も一般的な使用方法は、出力コンテンツを表示し...

Nginx リバース プロキシ学習例チュートリアル

目次1. リバースプロキシの準備1. LinuxシステムにTomcatをインストールする2. Tom...

MySQL 8.0.15 のインストールと設定方法のグラフィックチュートリアル (Win10 Home バージョン 64)

超初心者の私は、MySQL を学び始めたばかりで、インストール プロセス中に多くの問題に遭遇しました...

ウェブページのコメントにより IE でテキストがオーバーフローする

実験コードは次のとおりです。 </head> <body> <div ...

Vue プロジェクトで mock.js を使用するための完全な手順

Vue プロジェクトで mock.js を使用する開発ツールの選択: Vscode 1. コマンドラ...

CSS3 は反転可能なホバー効果を実現します

CSS3 は反転可能なホバー効果を実装します。具体的なコードは次のとおりです。 1.css /*基本...

Linux の操作とメンテナンスの基本 httpd 静的 Web ページ チュートリアル

目次1. ウェアハウスを使用してhttpd lrzsz解凍ファイルを作成する2. ソースコードファイ...

MySQL でよく使用されるデータベースとテーブル シャーディング ソリューションの概要

目次1. データベースのボトルネック2. サブライブラリとサブテーブル2. 横長テーブル3. 垂直サ...

IE6かどうかを判定する最短JS(IEの書き方)

ブラウザが IE のどのバージョンであるかを検出するためによく使用される JavaScript コー...

Mysql論理アーキテクチャの詳細な説明

1. 全体的なアーキテクチャ図他のデータベースと比較すると、MySQL は、そのアーキテクチャがさま...

TypeScript の基本型の紹介

目次1. 基本タイプ2. オブジェクトタイプ2.1 配列2.2 タプル2.3 オブジェクト3. 型推...