-1

私はjavascriptプロジェクトに参加しており、canvasを使用してツリーを描画する必要があります。このように:http://en.wikipedia.org/wiki/Binary_search_tree#Types

各ノードは私のプロジェクトのウィンドウを表し、各サブノードは前のノードの子です。

次のような配列を使用する必要があると確信しています。

var node = {
    windowId,
    childs{}
}

つまり、ノードはルートになり、そのID(windowId)とchilds {}は、同じ構造を持つ別の配列になります。

例えば:

var node = {
        windowId,
        childs{
            windowId //windowId of the child
            childs{}
        }
    }
   .
   .
   .

再帰関数を作成していますが、ほとんど何もありません...助けていただけませんか?

4

1 に答える 1

0

各ノードがトップレベルになることができる場合、あなたがしなければならないのは、常に子を許可する構造を理解することです。例を拡張すると、子の各リストを配列にするのは非常に簡単です。

{ 
    id: 0,
    childs: [
      { 
       id: 0.1,
       childs: [ ... ]
      },
      {
      id: 0.2,
      childs: [ ... ]
      },
       ...
    ]
}

残りの部分については、現在のオブジェクトを変数に格納してから、各リーフを調べて、対応するインデントを追加します。正しく実行すれば、単一の描画関数を使用して、必要な回数だけ呼び出すことができます。レベルを追跡する必要があります。

于 2013-03-12T13:51:21.807 に答える