問題タブ [preorder]
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 - preorder&inorder または postorder&inorder トラバーサルに基づいて非バイナリ ツリーを構築するにはどうすればよいですか?
データ構造とアルゴリズムのクラスの 2 つの演習は、次のように聞こえます。
preorder トラバーサルが 1, 2, 5, 3, 6, 10, 7, 11, 12, 4, 8, 9 で、inode トラバーサルが 5, 2, 1, 10, 6, 3, 11, 7、12、8、4、9。
後順トラバーサルが 5, 2, 10, 6, 11, 12, 7, 3, 8, 9, 4, 1 で、inode トラバーサルが 5, 2, 1, 10, 6, 3, 11, であるツリーを構築します。 7、12、8、4、9。
プログラミング言語で実装することなく、ツリーの構造を描画するだけで済みます。この作業を困難にしているのは、木が二分木ではないことです。ツリーを構築するためにどのようなテクニックを使用できますか?
arrays - 配列からツリーを構築する
各要素にノードのデータとツリー内のノードのレベルが含まれている配列からツリーを作成するように依頼されました。配列は、ノードの事前順トラバーサルでした。
私の解決策は間違っていたと思います(または少なくともそれを行う最善の方法ではありません)が、その理由と正しい解決策が何であるかはわかりません。
私のアプローチは、関数の最初の呼び出しでレベル 0 から開始し、配列をループして、現在の再帰呼び出しのレベルよりも正確に 1 大きいレベルを持つものを見つけたときに、次の再帰呼び出しを行うことでした。その要素のインデックスから始まる配列とインクリメント レベル。次に、その再帰呼び出しの結果は子になります。
また、配列内の要素のレベルが現在の再帰呼び出しのレベルと等しいかどうかもチェックします。もしそうなら、ループから抜け出します。なぜなら、それは私の兄弟になるからです。親は別の再帰呼び出しでそれを処理します。
それは意味がありますか?この質問に正しく答えるには、何を変更する必要がありますか?
inorder - プレオーダー、ポストオーダー、インオーダー式の二分木を構築
インターネットと「ユーチューブ」を検索しましたが、これに関する適切なチュートリアルが見つかりませんでした。「後置」で特定の式の対応する「バイナリツリー」を描画するにはどうすればよいですか?
そして、この表現は中置詞と接頭辞でどのように見えるでしょうか?
これを段階的にどのように行うべきかわかりません:(
18 5 1 + / 4 * 3 5 18 6 / - + -
ノート:
前順、後順、およびインオーダーを描画するためのルールは次のとおりです。 1. 前順トラバーサル: ルート、左、右 2. 後順トラバーサル: 左、右、ルート、 右
試験に必要です
java - Java: 手動バイナリ ツリー
私のデータ構造クラスには、合計 7 つのノードを持つバイナリ ツリーを手動で構築し、各ノードのデータを事前順序トラバーサルで表示する割り当てがあります。ルート ノードには 2 つの子があり、これらの 2 つの子にはそれぞれ 2 つの子があります。最初のツリーの最後まで左側全体を作成するところまで来ましたが、最初の右の子を作成すると、この時点で Null Pointer Exception でスタックします。これに似た他のプロジェクトを検索しましたが、このコードの問題が何であるかまだわかりません。ツリーを作成するコードは、割り当てられたものよりもはるかに優れていることがわかりましたが、クラスでは、左右の子を手動で作成することに制限されています。おそらく作成するのが簡単なプログラムであると思われるものを支援する外部の視点は大歓迎です!
}
}
java - preorder トラバーサルに従って BinaryTree を返すメソッド
私が抱えている問題は、署名付きのメソッドを書くことです
(他のパラメータを追加することは可能です)
このメソッドは、パラメーターとして指定されたようなもの (同じサイズなど) を返すBinaryTree
必要があります。ノードの値を変更する場合にのみ必要です。結果のツリーの各ノードは、 で preorder traversal を使用するときに、同等のノードが処理された位置と等しい値を持つ必要がありますroot
。1から数え始めます。
以下を試してみましたが、正しく動作しません。
たとえば、BinaryTree がある場合:
(ノードにどんな値があるかは問題ではありません!)
メソッドは次のツリーを返す必要があります。
c++ - ツリーを引数として取り、入力された int の数を返す関数は?
私のプロジェクトには、ツリーを引数として取り、入力された整数の数と正しい呼び出しを返す関数が必要です。
予約だけじゃないの?以下のように。お願いします。ありがとう
呼び出しは preorder(t) になります。
これは私が持っている元の機能です