問題タブ [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.
c++ - 隣接リスト割り当ての速度を上げる方法は?
80513個のノードと5899882 個のエッジに対して隣接行列が機能しないと判断した後、adjacency listを適用することにしました。これは、隣接リストの最初の実装であり、基本的にはベクトルのベクトル メソッドを適用することにしました。
したがって、たとえば、vectorOfVectors[5]には、隣接ノード5を含む隣接ノードが含まれます。私が使用しているデータセットはここにあります
現在、私はこのコードを書き、エラーなしで動作しますが、私のコンピューターでは 26 秒かかります (6 GB RAM の i5 2.4、Win7 を実行)。割り当て速度を下げるためにコードを改善できるかどうか疑問に思っていました。
PS: fstreamライブラリを使用し、 .csvファイルから読み取っています。
mysql - ツリーノードのすべての子孫を選択する
隣接リストモデルを使用して、(非常に動的な)ツリー構造をMySQLデータベースに格納しています。特定のノードのすべての子孫を選択する方法が必要です。できれば、保存されたルーチンを1回呼び出すだけです。入れ子集合モデルはこれを簡単にすることは知っていますが、他のことは非常に難しくなるので、残念ながらそれは私にとって選択肢ではありません。これが私がこれまでに得たものです:
アイデアは、私が葉に到達するまで、子孫テーブルにドリルダウンして子を追加し続けることです。その後、プロシージャの外部から一時テーブルにアクセスできます...願っています。(ストアド関数から結果セットを返すことができないのは本当に残念です。)
どういうわけか結果をループして、行ごとに新しいSELECTステートメントを発行する必要があります。ここでカーソルが役立つかもしれないことを読みましたが、その方法がわかりません。カーソルを使用する場合は、すべてを前もって選択してから繰り返す必要があるようです。
scala - HashMap[Int, Vector[Int]] (Scala)でグラフ(隣接リスト)を表現する?
を介して(可変)グラフの隣接リスト表現を作成する方法(可能であれば)を考えていましたHashMap[Int, Vector[Int]]
。HashMap
もちろん変更可能です。
現在、私はそれを として設定していHashMap[Int, ArrayBuffer[Int]]
ますが、ArrayBuffer の各セルを変更できるという事実は、私がそうしていないことはかなり確信していますが、私を不快にさせます。私は a を使用しますListBuffer[Int]
が、グラフで高速ランダム ウォークを実行する必要があるため、近隣への高速ランダム アクセスが必要です。AVector[Int]
はこの問題を解決しますが、これを行う方法はありますか?
私の知る限り(REPLでこれを試しました)、これは機能しません:
いつでも追加できるようにする必要があり、(インデックスを指定して) その中の任意の要素にランダムにアクセスできるようにする必要があります。これは可能ですか?
ありがとう!-kstruct
sql - SQL隣接リストCTE:完全なパスのみにフィルター/制限
以下に示すように、隣接リストとして[paths]を返す関数/クエリを作成しました。これはうまく機能しますが、depth(n)の各反復ではなく、完全なパスのみに結果を制限する方法を理解しようとしています。
たとえば、以下に示す次の結果のうち、これらのみが有効なFULLパスであり、返したりフィルタリングしたりします。
テスト
select * from fn_Get_SubTreePaths('S11'、11)DPathによる順序
結果
言い換えると、トラバーサル/深度の最下部のアイテムを含むパスのみを特定するにはどうすればよいですか?
どんな助けでも大歓迎です!SQL forSmartiesのJoeCelkoのツリーと階層を読んでいますが、これまでのところ、結果を正しく制限する方法について頭を悩ませていません...
これがコードです。
そして、CTEによって使用されるビュー:
c# - グラフビルドの隣接リスト
適切なノードとリンクを使用してグラフを作成するために作成する必要がある隣接リストの種類を教えてもらえますか?ajdacencyリストを定義するためにツリー構造を作成する必要がありますか?または別の方法はありますか?
今はマトリックスに興味がない、ありがとう。
たとえば、エッジの他のノードのすべての位置にある他のアラーリストとの配列リストを作成して、次のようにすることはできますか?
だから私はarraylistまたは私の隣接リストを持っています[a[c],b[c],c[a,b]]
mysql - ファイル権限のネストされたセットまたは隣接リスト モデル (MySQL)
質問:
すべてのユーザー ファイル/フォルダーのアクセス許可を MySQL データベースに格納する場合、どのような設計を使用する必要がありますか?
詳細:
入れ子になったセットに必要な挿入時間が長すぎるのか、隣接リストが階層データでアクセスに時間がかかりすぎるのかを判断するのに苦労しています。ファイル/フォルダーの数が増えると、ネストされたセットに非常に長い時間がかかると確信しています。たとえば、ノード (行) を挿入するには、通過したノードの後にすべてのノードを更新する必要があります。パス (つまり、、、) で文字列のトークン化を/home/user/pictures
-->
/
使用/home
し/home/user
、それをクエリで使用して、可変長の隣接リスト モデルに相当するものを使用することは可能ですか? 3 番目のオプションはparent_folders
、まったく同じ機能を実行するが、より多くの時間ではなくより多くのスペースを使用するテーブルを持つことです。
files
およびfolders
テーブルの最小限の説明を次に示します。
ファイル:
フォルダ:
上記の 2 つのテーブルを次に示します。変更され、潜在的なparent_folders
テーブルがあります。
ファイル:
フォルダ:
親フォルダー:
php - 再帰的な PHP を使用して MySQL データを編成する
質問を 3 層のレベルで整理する必要があるクライアント向けのアンケートを作成しています。UI を正常に作成しましたが、過去 3 時間、すべてが適切な場所に読み込まれるようにデータベースからデータを取得しようとしました。データベースはクライアントによってそのように編成されているため、私はそれを制御できません:
したがって、parentId が 0 のものが最上位レベルであり、parentId が 1 の第 2 レベルのものが含まれます。はい、紛らわしいです、私はこれをほとんど理解できませんが、これは私がそうするように言われた方法です.
このようなことを実行するには、どのようなアプローチが最善の方法でしょうか? 私が参照として使用している別の質問の例を以下に添付します(ただし、機能しません)
どんな助けでも大歓迎です。乾杯
mysql - MySQL - 隣接リスト モデル - 深さの取得
id
、parent_id
、およびname
列を持つ組織テーブルがあります。このテーブルには約 50,000 行あります。最上位の親は 1 つだけで、残りはすべてその下にあります。level
Oracle では、疑似列を使用して特定の組織の現在の深さを簡単に取得できます。
MySQLで上記を行う適切な方法が何であるかがわかりません。1 つのクエリでノードの深さと一緒にツリー全体を取得する必要があります。
これに関係する StackOverflow に関する多くの質問がありますが、どれも本当に良い答えを持っているようには見えず、ほとんどが疑わしい解決策を持つブログへのリンクです。確かに、これはある種の簡単な方法で実行可能ですか?
残念ながら、テーブルを何らかの方法で変更することはオプションではないため、ネストされたセットは可能ではありません。
graph - グラフとツリー表現
隣接行列とリストを介してベクトルを使用してグラフを表す方法を教えてください。また、c & c++ でツリーを表現する方法。C で隣接行列とリストを使用してグラフを表現する方法。
php - html + php(codeIgniter)でツリーをレンダリングする方法
隣接モデル リストがあり、これがクエリです。
これは、隣接モデル リストを使用して 24 レベルの深さを作成するクエリです。
その後、私はこれを作ります:
それはすべての行のフィールドだけをレンダリングします、そして私はそれを階層的にすることが本当にわかりません、私はコードイグナイターを使用しています、ここで行またはオブジェクトを使用する方が良いですか?
私はこのようなものを作る必要があります:
繰り返しなしでそれは可能ですか?