web-dev-qa-db-ja.com

複数のルートノードを持つツリーデータ構造はありますか?

私は この投稿複数のルートノードを持つツリーのようなデータ構造の名前 を読みました。私が求めているのは森ではありません。

私のケースを簡単に表す簡単な例を挙げましょう。

あなたの家には、EBからの通常の電源とインバーター(代替電源)があります。これらをルートノードと見なします。そして次のレベルは、すべての部屋の監視メーターです。そして、次のレベルでは、ファン、AC、冷蔵庫などの機器があります。

このツリーでは、最初のレベルは電源のリストであり、2番目からn番目のレベルは、消費機器までのエネルギーフローを持ちます。

複数のルートノードを持つこのツリーを表すのに適したデータ構造はありますか?

編集:

必要な構造の画像

enter image description here

3
Vivek

有向非巡回グラフ (DAG)のようなものを探しています。これらのグラフにはルートノードがありません。ただし、ノードには部分的な順序があります。つまり2つのノードを見ると、どのノードが「上位」であるかがわかる場合があります。あなたの例では、電源は消費者よりも高いメートルよりも高いと言えます。

ツリーは特別な種類のDAGであり、各ノードには親ノードが1つだけあります(親のないルートを除く)。

マルチツリーは、2つのノード間に明確なパスが1つしかないDAGです。つまり任意の(ルート)ノードから到達可能なすべてのノードがツリーを形成します。

18
amon

マルチツリーまたはポリツリーと呼ばれる、複数のルートノードを持つ方向性非循環グラフと呼ばれるデータ構造があります。

エネルギーフローに関する例から、max-flow min-cutの定理(別名、s-tフローの定理)も確認する必要があります。

2
Bruno Ranieri