検索ツリーとは
検索ツリーは、データのリストを格納および整理するためにコンピュータープログラミングで使用されるデータ構造です。各検索ツリーは、ノードの順序付けられたセットで構成されています。これらのノードは、0個以上の他のノードに接続できます。 individual個々のノードにはいくつかのデータと他のノードへのリンクが含まれていますtreeツリーのノードに含まれるデータは、効率的なアルゴリズムを検索できるように何らかの方法で順序付けられていることが非常に多いです nodes簡単にノードを挿入および削除します。
検索ツリーのノードは、4つの重要な用語で説明されています。ツリーの最上部、最初のノードが置かれている場所、ルートと呼ばれます。サブノードへのリンクが含まれている場合-nodes、そのノードは親として知られています。親ノードの下にあるノードは子ノードと呼ばれ、子ノードを持たないノードはリーフと呼ばれます。ルートノードには親がないため識別され、リーフノードには子がありません。
プログラムは、特定のノードから開始してデータを検索するツリー内を移動できます。条件付きチェックを実行し、必要なデータが存在しない場合は次の論理ノードに移動します。使用するデータ構造に依存この検索には時間がかかることがあります。addingノードの追加と削除のプロセス中に検索ツリーが編成されている場合、検索は非常に高速になります。 「ランダムに」、「ソートされていない、または複数の親を許可する」、「検索に非常に長い時間がかかることがあります。
検索ツリーの使用に影響を与える要因の1つは、バランスの問題です。balancedバランスツリーとは、ルートノードの右と左の両方の子が同じ深さの子ノードを含むか、1ノードカウント内にあるツリーです。 depthatreeの深さは、ツリーの最下位の葉からルートまでのノードの数です。balanceバランスの取れていないツリーは、片側のみにすべてのノードを持つか、すべてのノードを持つことができます。分岐なしで線形に配置されたノード。ツリーの深さが増加すると、検索アルゴリズムの速度が劇的に低下する可能性があります。
セルフバランシングと呼ばれる特定の種類の検索ツリーがあります。seこれらのツリーは、ツリーの回転などの操作を使用して、バランスを維持します葉のデータの順序を保持しますperformingツリーの回転は、ノードの追加および削除時にプログラムの速度を低下させる可能性があります。これは、データを取得できる速度によって相殺されます。
検索ツリーには多くの種類がありますが、最も一般的なツリーデータ構造はバイナリ検索ツリーです。このデータ型は、それぞれ0〜2つの子ノードを持つノードで構成されています。ルートノードは1つのみです。また、ツリー内のすべての葉は、左から右へと、それらが保持するデータに応じて値が昇順で並べられます。多くのアルゴリズムが存在します。データの注文を非常に簡単にします。
検索ツリーノードには、単一の標準実装はありません。nodesノードは、さまざまなデータ構造で表すことができます。arrays配列の配列を使用できます。リンクリストを乗算できます。多くの場合、検索ツリーは、プログラムが要求する必要な操作の完了を支援するように設計されたカスタムデータ構造を使用します。いくつかの標準プログラミングライブラリ独自の検索ツリーの内部実装を含みます。