問題タブ [tree-traversal]

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

c++ - 二分木のレベル順トラバーサル

上記の投稿されたコードは、私のレベル オーダー トラバーサル コードです。このコードは私にとってはうまく機能しますが、私が気に入らないことの 1 つは、明示的に初期化temp_node = NULLしているか、ブレークを使用していることです。しかし、それは私には良いコードではないようです。

これよりもきちんとした実装はありますか、またはこのコードをより良くするにはどうすればよいですか?

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

php - この結果セット(トラバーサルモデルでデータベースに保存されているネストされたカテゴリ)から配列を作成するにはどうすればよいですか?

この質問に基づく: 変更されたプレオーダーツリートラバーサルモデル(ネストされたセット)を<ul>に取得する

以下のロジックは順序付きリストを作成するために使用されますが、配列で同じことを行うにはどうすればよいですか?

ネストされた配列を作成したい。

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

javascript - 深さが不明なJSONツリー内の値/オブジェクトを建設的に操作する

ノードと子を含むJSONツリーがあります-形式は次のとおりです。

このツリーの深さはわかりません。ノードは、多くの子を持つことができ、多くの子を持つことができます。

私の問題は、nodeIDを使用してこのツリーにノードを追加する必要があることです。たとえば、nodeIDとノードオブジェクト(その子を含む)を取得できる関数は、ツリー内のそのノードを置き換えることができます。その結果、より大きなツリーになります。

JSONツリー内のすべてのノードをトラバースできる再帰関数に出くわしただけで、これらの関数の1つを変更すると、ノードオブジェクトが返されますが、元のツリーを変更する必要があるため、役に立ちません。 :

これにより、次のテストを実行できます。

要約すると、深さが不明なJSONツリーの値を変更するにはどうすればよいですか?

前もって感謝します

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

python - ページ プロパティ sortIndex を使用したツリー トラバーサル

db.Model呼び出されたページから取得したリストに基づいてツリー構造を構築しています。

各ページ エントリには、sortIndex と呼ばれる parentKey プロパティがありdb.SelfReferenceProperty()ますdb.IntegerProperty()

リストをフェッチし、メソッドを呼び出してリストをトラバースし、ネストされた dict をツリーとして作成します。リスト全体を取得する理由は、複数のクエリをスキップしたいからです。

そしてbuild_tree:

問題は、リストが再配置され、det ORDER BY に従わないことです。これは、適切な親が見つかったときに各ページがリストに入れられるためだと思います。しかし、最初のレベル ( を持つページparentKey == None) でさえ間違った順序で返されます。

tree[str(i) + '_' + str(key)] のループ カウンターを使用してプレフィックスを設定しようとしましたが、適切な順序で返されませんでした。

では、それらを適切な順序で取得する方法について質問します。

編集[解決済み]:

下記参照

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

algorithm - 二分木の境界を見つける

二分探索木が与えられます。その境界を見つける必要があります。

したがって、二分木が

印刷する必要があります50 25 15 35 120 155 250 20 150 10

二分木が

のようになります50 25 15 35 65 30 200 150 10

これはどのように行うことができますか?これを二分木に一般化すると、問題はさらに難しくなりますか?

リンクを介したヘルプも歓迎されます。

PS:パターンがルートからではなく、左から始まることを確認してください(この場合)。また、rightで始まる場合もありますが、常にrootで終わります。

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

tree - 与えられたトラバーサルを使用して二分木を再描画する

二分木を描く方法がわかりません。誰かが私に、より効率的な方法で、順序付け、順序付け、および順序付け後のトラバーサルについて説明できますか?

例えば:

次のトラバーサルを指定して、正確なBINARYツリーを再構築します。

順番に:

注文後:

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

data-structures - フォーミュラのポスト オーダー トラバーサル

データ構造では、順番に変換し、事前に順序付けされた式をツリーに変換します。ただ、私はポストオーダーが苦手です。

与えられた式についてx y z + a b - c * / -

私が思いついた

左のサブツリーの * がデッキのジョーカーであることを除いて、ほとんどの場合、これは適合するようです。ポスト オーダー トラバーサルでは、最後の文字がツリーの最上位ノードになり、それ以外はすべて下に分岐します。ここで、/ および * 演算子は、反対のノードにある必要があることを意味します。ただし、ツリーをトラバースする場合、* を除くすべてが適合します。これは、左のサブツリーがルートの前のノードまで機能し、次に右のサブツリーに切り替える必要があるためです。

正しい方向へのナッジは高く評価されます。

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

c++ - 二分探索 Tree-breadthFirst 関数呼び出し

のアルゴリズムがあります void leveltraversal(ostream& out); が、 main () で呼び出す方法がわかりません。私の課題では、ヘッダー ファイルを変更することは許可されていません。オーバーロードせずに呼び出す方法はありますか?

アップデート:

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

php - ループせずに SimpleXMLElement プロパティにアクセスする

私は SimpleXMLElement XPath アプローチと DOMDocument XPath アプローチの両方を試しましたが、どちらの方法でも物事をまっすぐにすることはできませんが、少なくとも SimpleXMLElement ルートを使用すると、実際に結果変数を出力して、何が起こっているかを確認できました。(以下の結果を参照)

結果をループせずに XPath クエリを使用したい。配列のように結果にアクセスしたいだけだと思いますが、問題はその結果配列内の SimpleXMLElement オブジェクトを通過しているようです。

特定のクラスの div で HTML スニペットをクエリしています。ただし、この特定のクラスにはいくつかの div があるため、それらすべてが返されますが、これは問題ありません。それが私が欲しいものです。しかし、今はそれぞれにアクセスして値を取得したいのですが、ほとんどの場合、子 div があるだけです。

XPath クエリを実行するために使用している行は次のとおりです。

結果の print_r() 出力は次のとおりです。

さて、各値がどこにあるかを知っているので、次のようにアクセスできると思いました。

明らかな問題は、SimpleXMLElement オブジェクトが $stats 配列と ['div'] 配列のアイテムの間に挟まれていることです。そのサブアイテムの値は、SimpleXMLElement オブジェクトの背後に隠れています。

では、$stats 配列をループせずに、SimpleXMLElement オブジェクトを超えてこれらの値を取得するにはどうすればよいでしょうか? 上記ですでに試したことに似たものはありますか?

0 投票する
5 に答える
5434 参照

javascript - 関数は、最初に関数を呼び出したアンカーの親要素をどのように見つけることができますか?

わかりました、質問だけで頭が回転します。

関数を呼び出しているアンカー タグがあります。

参考までに、これは呼び出されている関数です。

この関数が 1 つのページの複数のフォームで動作できるようにしたいと考えています。だから私の考えは、ツリーを親フォーム要素に戻し、そのIDを取得し、それを(何らかの方法で)使用して、関数がページ内の複数のフォームで機能できるようにすることでした。

簡単な console.log を使用してアイデアをテストしようとしたことがわかりますが、「未定義」が返され続けました。アンカータグ自体でconsole.logも実行してみましたが、やはり「未定義」でした。

私は .parents() をテストしましたが、アンカータグでは完全に機能しますが、関数iteslfでは機能しません。

助言がありますか?