問題タブ [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.
algorithm - 訪問済みフラグを保持しない反復的なポスト オーダー トラバーサル
inorder または pre-order 反復トラバーサルではなく、反復ポスト オーダー トラバーサルの Visited フラグを保持する必要があるのはなぜですか。
訪問済みフラグを保持せずにポストオーダートラバーサルを行うことは可能ですか?
algorithm - 実際のプレオーダー/ポストオーダー ツリー トラバーサルの例
プレオーダー、インオーダー、ポストオーダーのツリー トラバーサル アルゴリズムをよく理解しています。(参照)。私はいくつかの用途を理解しています: 二分探索木を順番にトラバースするための in-order 、木のクローンを作成するための pre-order です。しかし、私は一生、注文後のトラバーサルが必要な現実世界のタスクを思いつくことはできません。
例を教えてください。そして、事前注文トラバーサルのより良い使い方を教えてください。
編集: 式ツリーと RPN 以外の例を教えてください。それは本当にすべてのポストオーダーが良いのでしょうか?
c - スタックを使用した C での post_order トラバーサル
スタックを使用してポスト オーダー トラバーサルを実行しようとしていましたが、バイナリへの無効なオペランド タイプのエラーが発生しました。この状況を克服する方法を教えてください。以下はコードです。
c# - ツリー内のyieldreturn要素の順序を使用した再帰
開始ルートノードを指定して、すべてのサブツリーノードを返す再帰関数があります。
次のツリー構造の場合:
私がそのように反復しようとすると:
この関数はA値のみを返します。
再帰でyield-returnを使用し、Preorderの要素(この例ではA、B、C、D、E)を取得したいと思います。
(foreachの前にyield returnを配置すると、foreachは発生しません)。
これは可能ですか?
python - Pythonのast.nodevisitorでのポストオーダートラバーサル
ast.NodeVisitor.generic_visit()を操作するだけで、Pythonでast.NodeVisitorのインスタンスに対してポストオーダートラバーサルを実行することは可能ですか?これは私がしました:
これは私に与えました:
私はそれが私に与えて欲しい:
どうすればいいですか?行き詰まってください。
java - 並列スタックを使用した NonRecursive PostOrder Binary Tree Traversal
非再帰的なポストオーダー バイナリ ツリー トラバーサルのこの疑似コードっぽいアルゴリズムを使用して、実際にコードに実装することを想定しています。基本的に、ノードへの参照を保存するためのスタックと、整数値 1 または 2 を保存するための 2 つの並列スタックを作成して、左または右のサブツリーにアクセスしたかどうかを確認します。私は彼らが私にくれたものに基づいてアルゴリズムを作成しましたが、何らかの理由で数字の一部のみを印刷し、正しい順序ではありません.
彼らが私にやりたいことは次のとおりです。
そして、これが私の実装です:
binary-tree - バイナリ ツリーのプリ オーダーとポスト オーダーのトラバーサルは同じですか?
この場合が真である二分木はありますか?
二分木が 1 つのルート ノードのみで構成されている場合を除き、そうは思いません。
algorithm - 順序のないトラバーサルのみを指定して、BINARY TREE(バイナリ検索ツリーではない)の順序後のトラバーサルを取得する方法
バイナリツリー(バイナリ検索ツリーではない)を順番にトラバースした結果を次のように示します。
E、D、B、A、G、F、H、C
ここで、インオーダートラバーサルが指定されているのと同じツリーのポストオーダートラバーサルの結果を確認する必要があります。
誰かが私にこれのためのアルゴリズムを提案できますか?
PS:順序どおりの結果からツリー自体をスケッチする方法はありますか?
algorithm - BSTを構築するには、トラバーサルの数を知る必要があります
Binary Search Tree
任意の1つのトラバーサル(、、または)、またはそれらの任意の2つの組み合わせからのpre
構築post
に関するin-order
さまざまなサイトの多数の記事に非常に混乱しています。たとえば、このページでは、トラバーサルとともに、、または順序トラバーサルpre
がpost
与えられると、を構築できると書かれています。しかし、あちこちで、彼らは私たちに一人でからを構築することを示しています。また、ここでは、与えられたトラバーサルからを構築する方法を示します。他のいくつかのサイトで、トラバーサルのみからを構築するための解決策を見つけました。level
in-order
BST
BST
pre-order
BST
pre
post-order
BST
post-order
inorder
これで、とpre-order
トラバーサルが与えられると、を一意に形成できることがわかりましたBST
。私が提供した最初のリンクに関しては、BST
frompre-order
とを構築できないと言われてpost-order
いますが、配列を並べ替えてトラバーサルpost-order
を取得し、それと配列を使用して?を形成することはできません。それは4番目のリンクのソリューションと同じですか、それとも異なりますか?そして、与えられただけで、それを並べ替えてを取得し、それとを使用してを取得できます。繰り返しますが、それはリンク2と3のソリューションとは異なる必要がありますか?inorder
pre-order
BST
pre-order
in-order
pre-order
BST
具体的には、一意に生成するのに十分なものは何BST
ですか?一意性が必要ない場合は、単純にソートしてin-order
トラバーサルを取得し、そこからN個BST
の可能なものの1つを再帰的に構築できます。
tree - ディスク容量を計算するための PostORDER Traversal
ツリーでのポストオーダー トラバーサルのアプリケーションの 1 つは、ディスク スペースの計算であると読みました。事前注文トラバーサルを使用できないのはなぜですか? 私たちは同じ答えを得ることはありませんか?