私は何をしようとしているのでしょうか?私は配列(nameList)を持っていて、配列にはオブジェクトを保持しています。これらのオブジェクトは、人々の名前(Jack、Jane、James、Danielなど)とこれらの人々が関係している人物の配列(JackはJaneとDanielなどに関連しています)から構成されています。もちろん、1人の人は複数の人に関連することができますが、2人の子供は関連することはできません。私はそれらを木の中に入れておきたい、そして私はその木が関係に従うようにしたい。私は、ほとんどの関係を持つ人から始めたいと考えています(例えば、ダニエルは7人に関連しています)。ほとんどの関係を持つ人が1人以上いる可能性があります。しかし、私が求めている質問の簡潔さのために、私はそれが誰であるかを知っていると言うだけで、私はmostRelatedとしてそれを渡すでしょう。配列を使ったツリーの作成
This is just an example of what I want to do
は、これは私がそうfar.But私はそれを促進するかどうかは確認していない持っているものです。
//my array of names is nameList
//to check who they are related to nameList.relatedTo
function Node(names) {
this.data = names;
this.parent = null;
this.children = [];
}
function CreateTree(nameList, mostRelated)
{
this._root=mostLinked;
for(var i=0; i < nameList[i].length;i++)
{
node= new Node(nameList[i]);
if(nameList[i].isChecked!)//if already add to the tree
{
if(nameList[i].isRelated)//to check if they have any relation
{
for(var j=0; i < nameList[i].relatedTo[j].length;j++)
{
if(nameList[i].relatedTo.isChecked!)
{
nameList[i]=Node.parent;
Node.children.push(nameList[i].relatedTo[j]);
nameList[i].isChecked=true;
}
}
}
}
}
}
名前リストは、次のようにこの
nameList
this.name;
this.relatedTo=[];
this.related=false;
this.checked=false;
このためにツリーを使用するのは適切なデータ構造ではありません.2人の子供が関連している場合はどうなりますか?あなたはグラフ/マップを使用する必要があります – ControlAltDel
あなたの設定はどこにでもあります。あなたはすでに誰が誰の親/子供であるかを確立していませんか?あなたの情報が既に与えられているあなたのデータのグラフを作るために、あなたはすでにグラフを作っています。 'nameList'の要素の一例を挙げてください。私はあなたの目標を誤解しているかもしれません。 – Andrew
@ControlAltDel、提案に感謝します。しかし、私は2人の子供が関連しないようにすることができます。私は質問を変更しました。 – JJD