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ストレージにはブール値のソリューションが含まれています

推薦する

uni-appがNFC読み取り機能を実装

この記事では、参考までに、NFC読み取り機能を実装するためのuni-appの具体的なコードを紹介しま...

要素を中央に配置するための配置方法 (Web ページ レイアウトのヒント)

ブラウザウィンドウの中央に要素を配置する方法まず、コード ブロックを示します。すでにコードを理解して...

Winows Server 2019 アクティベーション コードとボリューム ライセンス エディション KMS インストール キー GVLK

最近、社内文書の整理とファイルサーバーの構成を予定しています。以前はサーバー2003を使い慣れていま...

Windows 10 Home EditionにDockerをインストールする方法を教えます

Redisの本やSpring Cloud Alibabaの本を執筆した際に、一部の分散コンポーネント...

ブルートフォース攻撃を防ぐためのシェルスクリプト設定

シェルスクリプトはアクセス制御を設定し、複数回のログイン失敗後にIPをブロックしてSSHのブルートフ...

IDEA で mysql8.0.3 と mybatis-generator を使用する際に発生するバグ

1. プラグインを追加し、pomファイルの下に次の設定を追加します。 <!-- mybatis...

Linux で Grafana をインストールし、InfluxDB モニタリングを追加する方法

Grafana をインストールします。公式 Web サイトでは、直接インストールできる Ubuntu...

この記事では、Vue 3.0 レスポンシブの使い方を説明します。

目次ユースケースリアクティブAPI関連プロセス反応的なcreateReactiveObjectはレス...

Youdaの新しいプチビューの実装

目次序文導入ライブ使いやすいルートスコープマウント要素の指定ライフサイクルコンポーネントグローバル状...

JavaScript関数におけるこのポイントの問題の詳細な説明

このキーワードどのオブジェクトが関数を呼び出しますか? また、関数内の this はどのオブジェクト...

CSS設定div背景画像実装コード

コンポーネントに背景画像コントロールを追加するには、次の 2 つの手順だけが必要です。 <表示...

nginxコンテナ設定ファイルの独立した実装

コンテナを作成する [root@server1 ~]# docker run -it --name ...

MySql クライアントが数秒で終了する問題を解決する (my.ini が見つからない)

問題の説明 (環境: windows7、MySql8.0)今日、MySql をインストールした後、M...

MySQLデータベースとOracleデータベース間のバックアップをインポートする

OracleデータベースからエクスポートされたデータをMySqlデータベースにインポートします。 1...

Apple Watchのインタラクションデザインにおける4つの全く異なる体験が明らかに

今日も Watch アプリのデザインに関する話です。私はケーススタディが大好きなので、同じトピックを...