問題タブ [recursive-datastructures]

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 投票する
1 に答える
920 参照

php - この PHP 配列構造を多次元ツリーに変換するにはどうすればよいですか?

ツリーに変換する必要がある 2 次元の PHP 配列があります。各内部配列の「パス」値は、現在のノードへの列挙パスです。(このアイデアは、Bill Karwin の SQL Antipatterns に関する本から得ました)。

したがって、私が始めている配列は次のようになります。

お気づきかもしれませんが、外側の配列のインデックスは無意味です。「名前」で内側の配列をアルファベット順に並べただけで、PHP は外側の配列に数値インデックスを割り当てました。

「パス」値に関する限り、各パスの最後のセグメントはノードの疑似 ID です。つまり、動物はノード 1、鳥はノード 3 です。完全なパスが指定された場所へのルートを記述していることがわかります。ノード、たとえば、'Cockatoos' は 'Birds' の親になり、'Birds' は 'Animals' の親になります。

ノードのアルファベット順を維持したいのですが、親でグループ化します。つまり、次のような配列が必要です (自然な順序で):

これを再帰的に繰り返して、ツリーの視覚的表現を出力する予定です。

あるタイプの配列から別のタイプの配列に変換しようとする際に、私のアプローチでは再帰、変数変数、および正規表現を使用しましたが、障害が発生し続けています。

また、考えるべき SPL データ構造または反復子はありますか?

どうもありがとう!

編集:申し訳ありませんが、ツリーの深さは可変であることに言及する必要がありました。上記の例では 3 つのレベルがありますが、実際にはさらに多くのレベルがあります。

キム

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

recursion - sml の再帰的データ型

整数のデータ型を定義する方法はありますか。つまり、0、1、2、... ゼロ、1、... ではありません。

整数の集合を定義したい。再帰で 0、n、n+1 を使用する bu。次のようなことを試しました: datatype nat=0|n|n+1 。しかし、0を整数として認識しないため、機能しないことはほぼ明らかでしたよね?

助けていただければ幸いです。

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

c - 再帰的構造体

typedef再帰的な構造体を構築するために使用する必要がありますか?次のコードを使用しようとしましたが、成功しませんでした。

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

c# - 人間が読める方法でノードのチェーンを表現する

漸進的に描画する必要がある地下鉄の地図タイプのものを表現しようとしています(成長するように)。

私のコードはすべて完全に機能しますが、判読できません。基本的に、これは再帰的なノードとサブノードを持つツリー構造であり、私のテスト コードは次のようになります。

その混乱を修正する方法について何か提案はありますか?

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

sql - 電話データベースのSQLクエリ

私は電話のデータベースプロジェクトに取り組んでいます。これは図のクイックビューです。callidは呼び出しテーブルで自動インクリメントされ、sessionidはセッションテーブルで自動インクリメントされます。このように、3方向の呼び出しで呼び出しが行われます。同じ図。sessionstarttimeとsessionendtimeを除くすべてのフィールドに架空のデータを入力しました

phpmyadminを使用して、

私の質問:顧客の請求可能な時間を電話番号として指定する1つのクエリを実行する必要があります。

電話の例

A-> B12:00PMから1:00PM

B->C午後12時30分から午後1時30分まで

Aは1時間請求する必要があります

Bは1時間半(1:30時間)請求する必要があります

Cは1時間請求する必要があります

別の例A->B12:00 PM〜1:00PM A-> C 12:30 PM〜1:30PM

Aは1時間半(1:30時間)請求する必要があります

Bは1時間請求する必要があります

Cは1時間請求する必要があります

与えられたデータ形式は次のとおりです

これがER図です

http://i.stack.imgur.com/rrh4B.jpg

これが私が考え始めたものですが、1つのクエリを呼び出しテーブルのすべての可能な入力に適合させようとすると混乱に陥ります

また、参照用の簡単なクエリがいくつかあります

各通話の長さを計算します

各セッションの長さを計算します

アカウントによって行われた通話の議事録(callsenderに注意)

アカウントで受信した通話の議事録(callrecieverに注意)

これがスキーマのxml出力です

事前にご協力いただきありがとうございます。このデータベースで可能な他の複雑なクエリについてお考えの場合は、ヘルプ/入力/指示をお知らせください。

xmlでの4方向通話データの例

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

r - ディレクトリ ツリーを再帰的なリストとして表現する

私は特定のタスクで立ち往生しています。私が欲しいのは、ディレクトリ パスを指定すると、出力として再帰リストを返す関数です。

出力は myList$dir$subdir$subdir$fullFilePath の形式である必要があります

基本的に、ディレクトリツリーを特定のリストとして表現したいと考えています。すべてのファイルを取得し、各ファイルのすべてのサブディレクトリを取得しますが、複数のレベルを持つリストにすべてをスローする方法に行き詰まっています。

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

c - 再帰的なデータ構造がうまくいかない - タイプ struct *l から List を割り当てるときの互換性のないタイプ

基本的に 3 つのレベルの構造体があるバイナリ ツリーを作成しました。

そして、このコード行で

タイトルに記載されているエラーが表示されます

通常、再帰的なデータ構造では、次の型が struct *l であるにもかかわらず、これらの型の代入が機能します。この場合、なぜ機能しないのか、誰かが私を助けてくれますか?

また、私は本能的に上記の行を

しかし、私のコンパイラはそれをあまり好まないようです。

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

php - 大きな配列を処理するには?

大きなファイル ハンドラーを実装する必要があるアプリケーションを PHP で開発しています。ファイルの読み書きは問題ありませんが、ファイルの内容を確認するのは問題です。

変数が同じドキュメントで既に使用されているかどうかをチェックする再帰関数を作成しました。

in_array($id,$this->id) が FALSE を返す場合、$id は $this->id (使用されたすべての ID を含む配列) に追加され、有効な ID を返します。

これが TRUE を返す場合、パラメータ $id+1 を持つ同じ関数を返します

一度に 300000 を超えるレコードについて話しているので、PHP はそのような大きな配列を格納できません。この配列が大きくなりすぎると、生成するドキュメントに行を書き込むのをやめるようです。しかし、私はそのようなエラーメッセージを受け取りません。

生成されたドキュメントは複数の行 INSERT を持つ SQL ファイルであるため、別の解決策として、ID がデータベースに既に存在するかどうかを確認することができます。MySQL はこれらの例外をキャッチし、ID に 1 を追加してこれらのエントリを再試行できますか? どのように?

この問題をどのように解決する必要があると思いますか?

敬具、

ウーター

0 投票する
4 に答える
1760 参照

haskell - parsec を使用して再帰データを解析する

からList Int解析するためにパーサーをどのように実装できますか?Cons 0 (Cons 1 (Cons 2 (Cons 5 Nil)))list

ps : a を解析し[Int]て変換しない純粋なパーサーList Intが望ましいです。

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

types - 相互再帰型とは何ですか?

MLの場合、再帰データ型の例は次のとおりです。

MLでの相互再帰データ型とは何ですか?その例は何ですか?