問題タブ [hierarchical-trees]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
2503 参照

recursion - ルート ノードにカスケードするツリー構造のカテゴリの合計

私は率直に言って、私は世界で最も偉大な数学者ではないと言うつもりです:D したがって、この問題はほとんどの人にとって簡単かもしれません. 残念ながら、それは私を混乱させており、実行可能な解決策にいくつかの刺し傷がありました.

他のツリーと同様に、多くの枝を持つことができ、葉ノードで終わるまで、多くの枝がより多くの枝を持つことができます。各葉について、その値を示す情報があります。

私が必要としているのは、各リーフ ノードの値をそのブランチ (親) の合計として要約し、残りについても同じことを行うという問題に取り組む方法についての明確な説明ですが、ブランチが他のブランチによって共有されている場合はそれがそれ自体に直接関連する各下位レベルの枝と葉の要約。

よりよく説明するには:

目標:

最下位レベルのメンバー (リーフ ノード)、ルート ノード、およびブランチ自体を特定できます。ブランチに、それ自体にリンクされている他のブランチがあるかどうか、またはリーフノードに直接リンクされているかどうかについての識別はありません。関係は、非常に根底から上に向かっています。IE: ブランチは、その子が誰であるかを参照していませんが、子は親が誰であるかを知っています。

ご不明な点がございましたら、お問い合わせください。問題をより適切に説明できるよう努めます。

どんな助けでも大歓迎です。

0 投票する
3 に答える
1316 参照

php - Doctrine ネストセットの削除

Doctrine ネストセット機能を使用しているモデルがいくつかあります。アプリケーションで必要なため、ツリーから要素の削除機能を追加したいと考えています。ドキュメントのスニペットを試していましたが、そのコードで非常に奇妙なエラーが発生しています。

YAML はこちら: http://pastie.org/820978

そして、私はMenuクラスの魔女が生成された抽象クラスBaseMenuを拡張し、BaseMenuがDoctrine_Recordを拡張するこのコードを試しています:)

とにかく私のコード:

そして、私はこれをエラーにします:

致命的なエラー: 非オブジェクトでのメンバー関数 getNode() の呼び出し

そして、 get_class($item) が戦争を起こしていることに気付きました (そのため、おそらくこの奇妙な動作の理由です):

警告: get_class() は、パラメーター 1 がオブジェクトであると想定しており、ブール値は次で指定されます...

ただし、これに対する解決策が必要であり、すべてのヒントを歓迎します...

0 投票する
2 に答える
585 参照

c - 階層ツリーで葉を構造化する

このコードは、深さに基づいた値でツリーを埋めます。しかし、ツリーをトラバースするとき、親ノードを反復処理せずに実際の子の数を決定することはできません。これは、サブリーフが現在のノードの下のノードに格納されているために必要です。リーフを現在のノード内に直接格納するには、どの概念上の変更が必要ですか?

0 投票する
1 に答える
1348 参照

asp.net-mvc - 自己参照カテゴリ テーブルから無限の階層カテゴリ ツリーを構築およびレンダリングする

次のように、各カテゴリに、マルチレベルの HTML リストとして表示したい他のカテゴリを参照できるCategoriesテーブルがあります。ParentIdCategoryId

現在、部分ビューを再帰的にレンダリングし、次のカテゴリを渡しています。うまく機能しますが、ビューでクエリを実行しているため、間違っています。

リストをツリー オブジェクトにレンダリングし、すべての階層カテゴリのリストが必要になるたびにすばやく表示できるようにキャッシュするにはどうすればよいですか?

0 投票する
2 に答える
8013 参照

php - db テーブル、php 配列、または JSON から階層的な php 構造を取得する方法

重複の可能性:
データベースの結果を配列に変換する

こんにちは、私を助けてください。php 配列または JSON で、db テーブルから階層的な php 構造を取得する方法を次の形式で示します。

私の SQL テーブルにはフィールドが含まれています: ID、PARENT、ORDER、TITLE

これで私を助けてもらえますか?私はこれを手に入れようとして夢中になっています。

よろしくお願いします。ダニエル

0 投票する
1 に答える
3904 参照

jquery - JQuery、階層テーブルのページネーション

階層テーブルとテーブルのページ付けが数回行われます。しかし、私はそれらの両方を一緒に探しています。私のアプリケーションではすでにJQueryを使用しているので、同じものを使用するプラグインは便利ですが、私はどんな提案も受け付けています。現在、jQueryプラグインを使用して階層データを表示し、独自のページネーション方法を追加しましたが、不十分です。

このようなページ付けのあるものを探しています。 http://docvert.org/holloway.co.nz/blog/wp-content/uploads/2008/07/treeview1.png

0 投票する
3 に答える
681 参照

sql - ツリー内の2つのノード間のすべてのノードをクエリするにはどうすればよいですか?

階層型データベース構造(列IDなどPARENT_ID)があり、行ごとに定義されており、最上位の行には。がありNULL PARENT_IDます。

このテーブルのすべての関係を別のテーブルにフラット化します。たとえば、祖父母、親、孫の1つの階層に3つのレコードがある場合、3つのレコードがあります。

(grandparent, grandchild)階層クエリを実行して孫が祖父母の子孫であると判断するのではなく、このフラット化されたテーブルにレコードが存在するかどうかを簡単に確認できます。

私の質問は、このフラット化されたテーブルを使用して、2つのノード間にあるすべてのレコードを最も効率的に返すにはどうすればよいかということです。例を使用して、パラメーターとして、grandparentおよびをパラメーターとして使用して、レコードgrandchildを取得するにはどうすればよいですか。(grandparent, parent)

これを解決するために階層クエリを使用したくありません...結合なしでこれを実行できるかどうか疑問に思っています。

0 投票する
2 に答える
258 参照

data-structures - マップのツリーに最適なデータ構造は何ですか

基本的にマップのツリーであるデータ構造を探しています。各ノードのマップには、親ノードのマップの要素だけでなく、いくつかの新しい要素が含まれています。ここでのマップとは、STL のマップや Python の dict のような、キーと値を持つプログラミング マップを意味します。

たとえば、ルート ノードがある場合があります。

および 2 つの子で、それぞれが親マップに要素を追加します

その後、ノードで検索が実行されます。たとえば、child1['jet'] は 35 を返しますが、root['jet'] は見つからないというエラーを返します。

これを可能な限りスペース効率的にしたいと思います。つまり、結果のマップの完全なコピーを各ノードに保存したくありませんが、理想的にはルックアップは O(log N) であり、N はノードの総数です。ツリー全体ではなく、ノードの要素。

これに使用できるスマートハッシュ関数があるのではないかと考えていましたが、何も思いつきませんでした。

素朴なアプローチでは、新しく追加されたエントリを各ノードのマップに格納し、何も見つからない場合はツリーを上に移動します。木の深さに依存するので、私はこれが好きではありません。

0 投票する
2 に答える
495 参照

google-app-engine - 非リレーショナルデータベースの階層データに関する推奨事項はありますか?

非リレーショナルデータベースをバックエンドとして使用するWebアプリケーション(django-nonrel + AppEngine)を開発しています。いくつかの階層データ(projects / subproject_1 / subproject_N / tasks)を保存する必要があり、どのパターンを使用すべきか疑問に思っています。今のところ私は考えました:

  • 隣接リスト(アイテムの親IDを保存します)
  • ネストされたセット(アイテムの左右の値を格納します)

私の場合、通常のユーザーのネストの深さは4〜5レベルを超えません。また、UIでは、最初のページの読み込み時にあまりにも多くのアイテムを読み込まないように、最初のレベルのアイテムにページ番号を付けたいと思います。

これまでのところ、階層を表示に使用する場合、ネストされたセットは優れています。ツリーでの編集が頻繁に行われる場合、隣接リストは最適です。私の場合、編集よりも表示が必要だと思います(ネストされたセットを使用する場合、表示がうまく機能する場合でも、上記のページ付けによって編集が複雑になる可能性があります)。

非リレーショナルデータベースでの経験に基づいて、何か考えやアドバイスはありますか?

0 投票する
2 に答える
6750 参照

algorithm - 外部ファイルにある呼び出しツリーを表すために、Perlでツリーデータ構造(ネイティブである必要があります)を作成する

これがファイルの例です。

...は呼び出しの深さを表します。行の後のファイル名は、親で呼び出されたファイル名と行番号を示します。ファイルを解析できます。ファイルを解析した後、私がやろうとしていることは、データをn-aryツリーに配置することです。私はデータ結合と制御結合の分析を行っており、ビルド内のすべての変数のすべてのセット/使用データをすでに収集しています。これで、ツリーをトラバースできるようになり、深さの数値に基づいて、使用前のセットがあるかどうか、またはセットはあるが使用されていない状況があるかどうかを判断する必要があります。ツリートラバーサルが最も理にかなっていると思いました。

収集されたデータの例を次に示します。

また、すべての変数名を含む配列があります。短縮例:

私の最大のハードルは、このタスクを実行するための適切なデータ構造とアルゴリズムを理解することです。

n-aryツリーを深さ優先探索すると、必要なものが得られると思いました。

これが私の最終的な解決策です:

出力は次のようになります。

このcall_tree.txtファイルから:

このサブルーチンの使用: