プログラミング
 Computer >> コンピューター >  >> プログラミング >> プログラミング

データ構造の最小スパニングツリー


スパニングツリー は、最小数のエッジで接続されたすべての頂点を持つ無向グラフのサブセットです。

すべての頂点がグラフで接続されている場合、少なくとも1つのスパニングツリーが存在します。グラフには、複数のスパニングツリーが存在する場合があります。

最小スパニングツリー

最小スパニングツリー(MST) は、接続された重み付き無向グラフのエッジのサブセットであり、すべての頂点を可能な限り最小の合計エッジ重みで接続します。 MSTを導出するには、プリムのアルゴリズムまたはクラスカルのアルゴリズムを使用できます。したがって、この章ではプリムのアルゴリズムについて説明します。

すでに説明したように、1つのグラフに複数のスパニングツリーが含まれる場合があります。 nがある場合 頂点の数、スパニングツリーは n-1である必要があります エッジの数。このコンテキストでは、グラフの各エッジが重みに関連付けられており、複数のスパニングツリーが存在する場合、グラフの最小スパニングツリーを見つける必要があります。

さらに、重複する重み付きエッジが存在する場合、グラフには複数の最小スパニングツリーが含まれる可能性があります。

データ構造の最小スパニングツリー

上のグラフでは、最小スパニングツリーではありませんが、スパニングツリーを示しています。このスパニングツリーのコストは(5 + 7 + 3 + 3 + 5 + 8 + 3 + 4)=38です。


  1. データ構造の二分木とプロパティ

    このセクションでは、1つの二分木データ構造のいくつかの重要なプロパティを確認します。このような二分木があるとします。 一部のプロパティは-です レベル「l」のノードの最大数は$2^{l-1}$になります。ここで、レベルは、ルート自体を含む、ルートからノードへのパス上のノードの数です。ルートのレベルは1であると考えています。 高さhの二分木に存在するノードの最大数は$2^ {h}-1$です。ここで、heightは、ルートからリーフへのパス上のノードの最大数です。ここでは、1つのノードを持つ木の高さが1であると考えています。 n個のノードを持つ二分木では、可能な最小の高さまたは最小のレ

  2. データ構造における二分木表現

    ここでは、コンピュータのメモリでバイナリツリーを表現する方法を説明します。表現するには2つの異なる方法があります。これらは配列とリンクリストを使用しています。 このようなツリーが1つあるとします- 配列表現は、レベル順の方法を使用して要素をスキャンすることにより、ツリーデータを格納します。したがって、ノードをレベルごとに格納します。一部の要素が欠落している場合は、空白のままにします。上記のツリーの表現は以下のようになります- 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 10 5