問題タブ [adjacency-list]

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 に答える
495 参照

sql - SQLで子のないすべての親を削除するには?

ID、名前、レベル (深さ)、および parrent_id を持つテーブルがあります。子を持たないすべてのノードを削除する良い方法はありますか? (1 つのレベルで十分です)? 私はアプリケーションでそれを行うことができることを知っています-特定のレベルのすべてのノードをロードし、削除しない場合は子があるかどうかを確認しますが、これはおそらくSQLでより効果的であり、私はSQLの第一人者ではありません:)

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

mysql - 隣接リスト モデルとネストされたセット モデルを組み合わせるのは悪い設計と見なされますか?

私は MySQL でツリー構造の構築に取り組んでおり、データを表現するさまざまな方法を試しています。しかし、いくらスライスしても欠点があります。

ネストされたセット モデルを使用すると、ツリーのブランチ全体を簡単に選択できます。これを行う必要があります。ただし、ノードの直接の子を選択するのはそれほど簡単ではありません。

隣接リスト モデルは直接の子を取得するのには適していますが、ツリーのブランチ全体を返すにはあまり適していません。

このようなツリー構造を構築することについて特に悪いことはありますか?

だから私が持っているのは、隣接リストモデルとネストされたセットモデルがすべて同じテーブルにあります。そうすれば、選択対象の状況に応じて、/ またはのいずれかを使用できます。

人々の考えは何ですか?これは許されますか?(ピーナッツバターとチョコレートがついに一緒に?) それともこれは悪いデザインと見なされますか?

前もって感謝します、

0 投票する
7 に答える
15372 参照

algorithm - 有向グラフが単独で接続されているかどうかを判断する最も効率的な方法は何ですか?

私は、問題の1つが、有向グラフG =(V、E)が単一に接続されているかどうかを確認するアルゴリズムを導出するように要求する割り当てに取り組んでいます(すべての異なる頂点uに対してuからvへの単純なパスが最大で1つあります。 Vのv。

もちろん、ブルートフォースチェックを行うこともできます。これは私が現在行っていることですが、もっと効率的な方法があるかどうかを知りたいと思います。誰かが私を正しい方向に向けることができますか?

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

php - 隣接リスト モデルを使用して、テーブルに格納されたデータから順序付けられていないリスト ツリー メニューを作成します... php

「n 番目」のサブカテゴリのツリー メニューを作成する必要があります。テーブル構造に隣接リスト モデルを使用することにしました。これは、このテーブルをあまり更新しないため、これが私の用途では最も簡単に実装できるように思えたからです。

「ul」および「li」タグを使用して出力のスタイルを設定したい...スタイリングを行うための css および jquery ソリューションが既にあります。私の問題は、データベースからデータを引き出し、PHP を介して再帰関数を使用してリストを作成することにあります。リストは、ツリーを作成するために解析される連結文字列です。「ul」タグと「li」タグを必要な場所に配置するのに本当に苦労しています。

これはこれを行うための最良の方法ですか?これを行うために配列などを使用する他のより良い方法はありますか? このようなリストを作成するための「ベスト プラクティス」の例を教えていただければ幸いです。ありがとう。

これが私のテーブル構造です:

ポートフォリオ ID (int)、p_name (varchar)、parent_portfolio_id (int) 提示されたときにデータがどのように見えるかを次に示します。

現在の再帰関数は次のとおりです。

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

c++ - ブースト グラフ adjacency_list、ノードの親を取得

bgl の隣接グラフで、Vertexdescriptor を指定し、この特定のノードの親であるノードのセットを取得する方法を見つけたいと考えています。

有向グラフでこれを行いたいのですが、双方向グラフを使用できるようですが、循環がないように制限できるようにしたいと考えています。

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

php - PHPのSPLを使用して隣接リストから結果を集約するにはどうすればよいですか

ネストされたセットを使用してみましたが、複数のツリーやその他の多くの問題を処理するときに、それらを維持するのが非常に困難になります。PHPのSPLライブラリにこれを試してみたいと思います(ところで、PHP 5.3、MySQL 5.1 )。

与えられた2つのデータセット:

グループ:

アイテム

数字は実際にはこれよりもはるかに複雑です(私は実際には過去15年間の月または年の変動量を集計しているため、集計結果の20列が必要になる場合があります)。

編集: @Gordon結果セットを取得するには、いくつかの方法があると思います。理想的には、RecursiveIteratorのものを使用して、すべてのビジネスロジック(リーフノードなど)はすでに実行されているため、結果は次のようになります(隣接リストの深さは任意であることに注意してください)。

:編集終了

私はRecursiveIteratorIteratorAggregateを理解しようとしてきましたが、これらのクラスに頭を悩ませるほど一般的な実例を見つけるのに苦労しています。

誰かが私に有利なスタートを切ることができますか?

編集:

ここでは、非常に詳細なソリューションは必要ありません。階層データを集約するためのクリーンでスケーラブルなソリューションを考え出すために、Iterator、RecursiveIterator、RecursiveIteratorIteratorなどをどこで利用できるかは不明です。

:編集終了

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

c# - 隣接リストからツリーを作成する最も効率的な方法

順序付けされていないツリーを構築するために使用する必要のあるオブジェクト(キーとその親キーを使用してSQLデータベースからロードされた行)の隣接リストがあります。サイクルがないことが保証されています。

これには時間がかかりすぎます(約5分で87万ノードのうち約3Kしか処理されませんでした)。十分なRAMを搭載したワークステーションCore2Duoで実行しています。

これをより速くする方法について何かアイデアはありますか?

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

java - グラフ表現のベンチマーク

現在、(可能であれば) 3X4 から 26x30 までの寸法の任意の迷路を解くプログラムを開発しています。adj マトリックス (スパース) と adj リストの両方を使用してグラフを表します。DFS が 1 つの方法を使用してソリューションを見つけた後、別の方法を使用して合計時間を出力する方法を知りたいです。プログラム的に、どうすればそのようなベンチマークを作成できますか?

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

java - 隣接リストの作成、メモリ不足エラー

グラフを格納する隣接リストを作成しようとしています。100,000 レコードを格納している間、実装は正常に動作します。ただし、約 100 万件のレコードを保存しようとすると、OutofMemory エラーが発生しました。

スレッド「メイン」での例外 java.lang.OutOfMemoryError: java.util.Arrays.copyOfRange(Arrays.java:3209) の Java ヒープ領域 (java.lang.String.(String.java:215) の java.io.BufferedReader) .readLine(BufferedReader.java:331) at java.io.BufferedReader.readLine(BufferedReader.java:362) at liarliar.main(liarliar.java:39)

以下は私の実装です

隣接リストを実装するためのより良い方法があるかどうか疑問に思っています。また、最初からノードの数を知っており、将来、ノードにアクセスするときにリストをフラット化します。助言がありますか ?

ありがとう

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

java - 配列リストNullPointerException

グラフの頂点とエッジを表す adj List を使用して、DFS で迷路を解こうとしています。全部で 12 個のノードがあります (3 行 [A、B、C] * 4 列 [0、..、3])。私のプログラムは、すべての頂点ラベル(A0、..C3)を保存することから始めます。これまでのところ、問題はありません。次に、隣接するノードをチェックします。移動が可能であれば、エッジの作成に進みます。ここで、al が間違っています.

デバッガーを使用したところ、vList[j].labelnull ではなく、正しい文字列 (つまり、「B1」) が含まれていることがわかりました。null を示す唯一の変数は にあるadjList[i]ため、間違って実装したと思われます。これが私がやった方法です。

誰かが間違っていることを正しい軌道に乗せることができれば、本当に感謝します...ありがとう!