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データのエクスポートとインポートに関する知識ポイントの簡単な分析

多くの場合、ローカル データベースのデータをエクスポートしたり、他のデータベースからデータをインポー...

MySql Installer 8.0.18 画像とテキストによるビジュアル インストール チュートリアル

目次1. MySQL 8.0.18のインストール2. 環境変数を設定する3. 接続テスト1. MyS...

画像を使用してハイパーリンクのパーソナライズされた下線を実現します

画像内に下線付きのリンクが表示されても驚かないでください。実はとても簡単なので、あなたにもできるので...

mysql8.x docker リモートアクセスの詳細な設定

目次環境条件エラーが発生しました回避策1. mysql dockerにログインする2. ルートパスワ...

Windows で MySQL サービスを停止または削除できない問題の解決策

圧縮パッケージを解凍して Windows に MySQL をインストールしました。インストール方法は...

Docker データボリュームの一般的な操作コードの例

開発者が Dockerfile を使用してイメージをビルドする場合は、イメージをビルドするときにデー...

JavaScriptで継承を実装するいくつかの方法

目次構造継承(callで実装)プロトタイプチェーン継承(プロトタイプチェーンの助けを借りて実装)複合...

Linux inotifyリアルタイムバックアップの実装方法の詳細説明

リアルタイム レプリケーションは、企業データをバックアップする最も重要な方法です。主に、ユーザーが送...

WeChatアプレットが連携メニューを実現

最近はコース設計を実現するために、フロントエンドも少しやっています。今日はいくつかの機能を実現するた...

jQueryのanimateアニメーションメソッドとアニメーションキューイング問題の解決方法の詳しい説明

目次animate() アニメーションメソッドアニメーションキューイングdelay() メソッドアニ...

MySQL メモリテーブルと一時テーブルの使用方法の詳細な説明

MySQL メモリ テーブルと一時テーブルの使用メモリテーブル: セッション 1 $ mysql -...

MySQL で null 値と空文字 ('') を区別する

日常の開発では、データベースの追加、削除、変更、クエリが一般的に行われるため、Mysql で NUL...

Centos に PHP7.4 と Nginx をインストールする方法

準備する1. 必要なインストールパッケージをダウンロードするhttps://www.php.net/...

Docker イメージの作成、アップロード、プル、およびデプロイ操作 (Alibaba Cloud を使用)

学習プロセス中にプッシュ イメージが常にタイムアウトすることがわかったため、Alibaba Clou...