問題タブ [postorder]

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

c - 二分木から連結リストを作る方法(前後順)

いくつかの質問に目を通しましたが、何が起こっているのかわかりません。二分木を前後の順序でリンクされたリストに変換しようとしています。私のコードは、ゼロで構成されたリンク リストを返しています。この場合、post-order のコードは本質的に pre と同じであるため、除外しました。これが私の関連コードです:

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

c - C での再帰的なポストオーダー トラバーサルと sprintf

この関数を使用して二分木をトラバースしています。ノードへの新しい値の適切な保存 (「現在の出力」にスキップ) が sprintf(buffer, "var%i", counter) で失敗し続けると確信しています: なぜだろうか.

詳しくは

リーフ ノード (数値と操作ノード、この場合は * と +) によって作成されたバイナリ ツリーを処理しています。私の目標は、すべての operation_node->name を元の ID に変更することです。

元のツリーは次のようになります。

私がしようとしていること:

必要な出力 (アセンブラーのようなもの):

現在の出力:

質問

誰かがなぜこれが起こり続けるのかを説明してくれれば (そしておそらく何らかの解決策を提供してくれるでしょう)、私は感謝しています.

0 投票する
0 に答える
210 参照

data-structures - スレッドバイナリツリーのポストオーダートラバーサルの進め方

スレッド バイナリ ツリーでポスト オーダー トラバーサルを実行したいと考えています。

再帰的なトラバーサルではなく、ポスト オーダーのトラバーサルを実行したい場合は、

ターミナル ノードの場合、空の子ノード フィールドへのリンクに次のノード アドレスを挿入することで移動できます。

しかし、親ノードの場合、常にコツをつかまなければ、何らかの方法で移動する必要があります。

たとえば、「AB * CD / -」の場合、'B' -> '*' に移動して、B の右側の空のリンク フィールド (スレッド) を使用できます。

しかし、「*」->「C」または「/」->「-」に行くと

'*' と '/' の両方のリンク フィールドが子ノードでいっぱいです。進め方がわかりません。

続行する方法を教えてください。

ツリー リンクを使用する (スレッド リンクを使用しない) 親ノードのリンクはいっぱいです。

親ノードの親ノードに移動するにはどうすればよいですか。

0 投票する
0 に答える
135 参照

tree - このアプローチは正しいですか "preOrder と Reverse of ( postOrder ) が等しい場合、BST には 1 つの子しかありません"

入力: pre[] = {20, 10, 11, 13, 12} 出力: はい 与えられた配列は、次の BST を表します。次の BST では、すべての内部ノードにちょうど 1 つの子があります。したがって、出力は true です。

このステートメントは、上記の問題「( postOrder の preOrder と Reverse が等しい場合、BST にはちょうど 1 つの子がある場合)」に適していますか?