2016-06-27 9 views
-2

JavaScriptで各ノードに別個の親と子があるグラフ構造を作成しようとしています。したがって、各ノードは複数の親と複数の子を持つことができなければなりません。私はそれを階層的に表現する必要があるため、両親と子供を区別することができる必要があります。私はjavascriptで以下に示すようなものを達成する必要がありますが、構造は明らかにそれよりも大きくなります。私はこれを行うことができる方法はありますか?別個の親と子を持つグラフ構造を作成する方法

enter image description here

これまでのところ私は、定期的なツリー構造でこれをやって試してみましたが、私もこのチュートリアルを試してみました:https://www.syncano.io/blog/data-structures-in-javascript/、私は上記のように、私はそれは階層的な方法で動作させることはできません。

+0

。 @BryceDrewのアドバイスをありがとう。 –

+0

あなたは「仕事をすることができない」ということであなたが抱いていることを説明してください。 –

答えて

0

単純なノード構造。各ノードには、別個の親と子があります。ここで私は左と右を呼ぶ。私が望むと思うのは子供のリストです。子を子のリストに追加するメソッドを作成します。

申し訳ありませんが、これは構造が不十分です。私は通常CoffeeScriptをやっています。これを示すために私の質問を更新しました

https://jsfiddle.net/wx0v4jmt/

var left, right; 

var Node = (function() { 
    function Node(data, left, right) { 
    if (left == null) { 
     left = null; 
    } 
    if (right == null) { 
     right = null; 
    } 
    this.data = data; 
    this.left = left; 
    this.right = right; 
    } 

    Node.prototype.get_data = function() { 
    return this.data; 
    }; 

    return Node; 

})(); 

var node_4 = new Node("node_4", left=null, right=null); 
var node_3 = new Node("node_3", left=node_4, right=null); 
var node_2 = new Node("node_2", left=null, right=node_4); 
var node_1 = new Node("node_1", left=node_2, right=node_3); 

console.log(node_1.get_data()) 
console.log(node_1.left.get_data()) 
console.log(node_1.right.get_data()) 
console.log(node_1.left.right.get_data()) 
console.log(node_1.right.left.get_data()) 
+0

左右の意味は何ですか?この例では、ノード2とノード3を左右参照していますか?私は最終的に、自分の子供を持つノードよりも多くのノードを追加する必要があります。 –