問題タブ [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 投票する
6 に答える
1671 参照

algorithm - 訪問済みフラグを保持しない反復的なポスト オーダー トラバーサル

inorder または pre-order 反復トラバーサルではなく、反復ポスト オーダー トラバーサルの Visited フラグを保持する必要があるのはなぜですか。

訪問済みフラグを保持せずにポストオーダートラバーサルを行うことは可能ですか?

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

algorithm - 実際のプレオーダー/ポストオーダー ツリー トラバーサルの例

プレオーダー、インオーダー、ポストオーダーのツリー トラバーサル アルゴリズムをよく理解しています。(参照)。私はいくつかの用途を理解しています: 二分探索木を順番にトラバースするための in-order 、木のクローンを作成するための pre-order です。しかし、私は一生、注文後のトラバーサルが必要な現実世界のタスクを思いつくことはできません。

例を教えてください。そして、事前注文トラバーサルのより良い使い方を教えてください。

編集: 式ツリーと RPN 以外の例を教えてください。それは本当にすべてのポストオーダーが良いのでしょうか?

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

c - スタックを使用した C での post_order トラバーサル

スタックを使用してポスト オーダー トラバーサルを実行しようとしていましたが、バイナリへの無効なオペランド タイプのエラーが発生しました。この状況を克服する方法を教えてください。以下はコードです。

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

c# - ツリー内のyieldreturn要素の順序を使用した再帰

開始ルートノードを指定して、すべてのサブツリーノードを返す再帰関数があります。

次のツリー構造の場合:

私がそのように反復しようとすると:

この関数はA値のみを返します。

再帰でy​​ield-returnを使用し、Preorderの要素(この例ではA、B、C、D、E)を取得したいと思います。

(foreachの前にyield returnを配置すると、foreachは発生しません)。

これは可能ですか?

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

python - Pythonのast.nodevisitorでのポストオーダートラバーサル

ast.NodeVisitor.generic_visit()を操作するだけで、Pythonでast.NodeVisitorのインスタンスに対してポストオーダートラバーサルを実行することは可能ですか?これは私がしました:

これは私に与えました:

私はそれが私に与えて欲しい:

どうすればいいですか?行き詰まってください。

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

java - 並列スタックを使用した NonRecursive PostOrder Binary Tree Traversal

非再帰的なポストオーダー バイナリ ツリー トラバーサルのこの疑似コードっぽいアルゴリズムを使用して、実際にコードに実装することを想定しています。基本的に、ノードへの参照を保存するためのスタックと、整数値 1 または 2 を保存するための 2 つの並列スタックを作成して、左または右のサブツリーにアクセスしたかどうかを確認します。私は彼らが私にくれたものに基づいてアルゴリズムを作成しましたが、何らかの理由で数字の一部のみを印刷し、正しい順序ではありません.

彼らが私にやりたいことは次のとおりです。

そして、これが私の実装です:

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

binary-tree - バイナリ ツリーのプリ オーダーとポスト オーダーのトラバーサルは同じですか?

この場合が真である二分木はありますか?

二分木が 1 つのルート ノードのみで構成されている場合を除き、そうは思いません。

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

algorithm - 順序のないトラバーサルのみを指定して、BINARY TREE(バイナリ検索ツリーではない)の順序後のトラバーサルを取得する方法

バイナリツリーバイナリ検索ツリーではない)を順番にトラバースした結果を次のように示します。

E、D、B、A、G、F、H、C

ここで、インオーダートラバーサルが指定されているのと同じツリーのポストオーダートラバーサルの結果を確認する必要があります。

誰かが私にこれのためのアルゴリズムを提案できますか?

PS:順序どおりの結果からツリー自体をスケッチする方法はありますか?

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

algorithm - BSTを構築するには、トラバーサルの数を知る必要があります

Binary Search Tree任意の1つのトラバーサル(、、または)、またはそれらの任意の2つの組み合わせからのpre構築postに関するin-orderさまざまなサイトの多数の記事に非常に混乱しています。たとえば、このページでは、トラバーサルとともに、、または順序トラバーサルprepost与えられると、を構築できると書かれています。しかし、あちこちで、彼らは私たちに一人でからを構築することを示しています。また、ここでは、与えられたトラバーサルからを構築する方法を示します。他のいくつかのサイトで、トラバーサルのみからを構築するための解決策を見つけました。levelin-orderBSTBSTpre-orderBSTprepost-orderBSTpost-order

inorderこれで、とpre-orderトラバーサルが与えられると、を一意に形成できることがわかりましたBST。私が提供した最初のリンクに関しては、BSTfrompre-orderとを構築できないと言われてpost-orderいますが、配列を並べ替えてトラバーサルpost-orderを取得し、それと配列を使用して?を形成することはできません。それは4番目のリンクのソリューションと同じですか、それとも異なりますか?そして、与えられただけで、それを並べ替えてを取得し、それとを使用してを取得できます。繰り返しますが、それはリンク2と3のソリューションとは異なる必要がありますか?inorderpre-orderBSTpre-orderin-orderpre-orderBST

具体的には、一意に生成するのに十分なものは何BSTですか?一意性が必要ない場合は、単純にソートしてin-orderトラバーサルを取得し、そこからN個BSTの可能なものの1つを再帰的に構築できます。

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

tree - ディスク容量を計算するための PostORDER Traversal

ツリーでのポストオーダー トラバーサルのアプリケーションの 1 つは、ディスク スペースの計算であると読みました。事前注文トラバーサルを使用できないのはなぜですか? 私たちは同じ答えを得ることはありませんか?