問題タブ [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.
c++ - 「ノード」タイプの一時オブジェクトのアドレスを取得する
t.PreorderTraversal(t, &t.getRoot());
「ノード」タイプの一時オブジェクトのアドレスを取得中にエラーが発生しました。ルートは Node クラスのオブジェクトです。この関数PreoderTraversal
は Node オブジェクトをポイントにするので、Node オブジェクトのアドレスを指定するとエラーが発生しました。それは正しい方法ではありませんか?
stack - 再帰なしのスタックを使用した BST 事前注文から事後注文
再帰なしでスタックを使用してポストオーダーを取得する方法は? ジャバがおすすめ!ありがとう!
以下は私の答えですが、2つの隠されたテストケースに合格できませんでした...誰でも助けてくれますか? ありがとう!
recursion - ツリートラバーサルの再帰関数を理解するのに問題がある
preorder、inorder、postorder のツリー トラバーサルに関連する再帰関数を理解するのに苦労しています。私は再帰についてある程度の知識を持っています (しかし、確かに私の得意分野ではありません)。全員が最初にルートの左の子と呼び出しを行い、次に右の子と 2 回呼び出しを行うようです。しかし、これはどのように正確に可能ですか?左の子で preOrder 関数を呼び出すと、制御フローが先頭に戻り、次の呼び出しが実行されないのではないでしょうか?
tree - リストから二分木を構築する (予約注文)
数日前に出くわした興味深い質問: リストから (ノード ラベル付きの) バイナリ ツリーを構築するエレガントな関数型プログラミング ソリューションはありますか?
結果として得られるツリーは左バランスである必要があります。つまり、ツリー内のノードのすべてのレベルが完全に埋められるか、最下位のノードの場合は左から右に埋められる必要があります。また、ツリーのレベル順トラバーサル (つまり、上から下、左から右) では、元のリストが得られます。
例: リスト 1,2,3,4,5 は次のようになります。
明白な解決策は、リストを配列に変換し、0 番目の値をルートに割り当ててから、再帰的にノードに対して子に値およびn
を与えることです。2n+1
2n+2
しかし、私は疑問に思っていました:補助配列を必要としない、より「機能的な」方法はありますか?
binary-search-tree - BSTでの予約注文と「tree_insert」
BST (それを T と呼びます) を持っていて、それに対して PRE-ORDER を実行した場合、予約注文から取得したシーケンスで関数「tree_insert」を実行していることをどのように表示/証明できますか?まったく同じツリーが得られます。 T(私が始めた)バック?
ありがとう、
algorithm - 存在しない子が指定された事前注文トラバーサルからの二分木
次のように、事前注文トラバーサルで表されるバイナリ ツリーがあります{1 4 6 10 0 0 0 7 0 8 0 0 2 5 0 0 3 9 0 0 0 }
。 0 は、要素の子がないことを示します。
このデータから元のバイナリ ツリーを構築するにはどうすればよいですか? 再帰の問題を解決しようとしましたが、親として葉を持たない限り配列内の位置を計算できないため、ノードの正しい子を処理する方法を理解していません (葉がその後ろに 2 つのゼロがあり、子がないことを示します)。
解決策はかなり簡単でなければならないと思いますが、まだわかりません。
algorithm - 単一の子を持つツリー ノードの子を削除する方法
ツリーを事前にトラバーサルするための配列があります (ノードの値は深さの値です)。私がやりたいのは、子が1つしかない内部ノードの子を削除してツリーを最小化することだけです。
例として (最大深さ = 3 のツリー)
ここで視覚化された問題
入力配列: [0, 1, 2, 3, 3, 1, 2, 3]
出力配列: [0, 1, 2, 2, 1]
アルゴリズムはどうあるべきですか?
binary-search-tree - BST建設の前兆
事前注文トラバーサルの配列から BST を作成しようとしています。次のコードを書きましたが、どこが間違っているのかわかりません。次のコードは、値が null のノードを返します。私は次のアプローチを使用しています:
10 8 4 5 14 12
私はそれを分割します (開始要素を削除した後): 8 4 5 および 14 12, (再帰的に)。