問題タブ [inorder]
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.
java - BST の前身であるインオーダー: 階層をたどる最短経路の通信
時間をかけてサイトで同様の質問と回答をチェックし、いくつか実装しましたが、まだ行き詰まっています。私の問題は少し異なり、扱いにくいようです。ノードを入力として指定すると、ノードの階層に従う最短の通信経路を決定する必要があるというシナリオに直面しています。次のようなツリーがあるとし
ます
。
----------------------------------------------
| | |
ディレクター 管理者 ディレクター 財務
| | |
| | -------------------
| | | | |
マネージャー 1 マネージャー 2 マネージャー 3
|
-------------------
| | | |
スーパーバイザー 1 スーパーバイザー 2
そして、これは私のJAVAコードです
}
メソッドの入力としてノードが与えられるとinorder()
、階層をたどる通信の最短パスを出力する必要があります。したがって、プログラムが出力する必要がseven
ある表現Supervisor 1
などを入力すると、次のようになります。inorder(seven)
しかし、私の実装から、出力としてこれだけが得られます:
コードを修正するのに助けが必要です...ありがとう
編集:
@nash_agのおかげで上記で指摘したように最初の問題を修正しましたが、inorder()メソッドを拡張して、親の左右の子の2つのパラメータを受け入れるようにしたいと考えています与えられた場合、inorder(five, six)
それが返されるようにしManager 2 (12) Director Finance (3) Manager 3 (15)
ます。また、与えられた場合、編集した Java コードは次のinorder(seven, six)
ように返されます。Supervisor 1 (16) Manager 1 (6) Director Admin (2) CEO(1) Director Finance (3) Manager 3 (15)
}
それはうまくいきますinorder(seven, six)
が、代わりにinorder(five, six)
返されますみんな助けてくださいManager 2 (12) <With no common ancestor> Manager 3 (15)
Manager 2 (12) Director Finance (3) Manager 3 (15)
binary-tree - nullメーカーを使用した順序通りのトラバーサルだけでバイナリツリーを一意に再構築することは可能ですか?
インオーダートラバーサルとヌルメーカーだけで二分木を一意に再構築することは可能ですか?
たとえば、ツリーの場合:
null マーカーを使用したインオーダー トラバーサルは、null、B、null、A、null、C、null です。
inorder - 注文前および注文後の名前
インオーダー、プレオーダー、ポストオーダーという名前の背後にあるロジックは何ですか? なぜ彼らはそのように呼ばれるのですか?
順番に。なぜ「で」という言葉なのか、「で」とは何ですか?
予約注文。「前」は「前の」という意味ですが、前は何ですか?
ポストオーダー。「post」は「after」を意味しますが、その後は?
これらの命令などを使用してツリーをトラバースする方法を尋ねる以前のスレッドがあることを知っています。それは私がここで尋ねていることではないので、重複した質問ではないことに注意してください。名前の意味を尋ねています。なぜ彼らは呼ばれるように呼ばれているのですか。
depth-first-search - inorder および postorder トラバーサル
たとえば、親の前に子供を順番に、または後から訪問することには、どのような意味がありますか? inorder、preorder、postorder トラバーサルは、ツリーを表す方法にすぎないことを理解しています。私は正しいですか?
tree - ツリー トラバーサル アプリケーション
私の練習の途中で質問を知っていて、答えを理解した人がいるのだろうかと思っていました。
プログラミングでは、多くの場合、新しいニーズに似た既存の関数をコピーし、そのコピーを新しい要件に合わせて変更するのが最善です。ある範囲の数値を逆順に出力する関数が必要な場合、新しい関数の基礎として 4 つのトラバーサル関数のどれをコピーしますか?
答え: Inorder traversal()
64 チームのシングル エリミネーション トーナメントの結果を含むバイナリ ツリーが与えられた場合、F が勝った 6 チームを出力したいと思います。以下の図は、はるかに大きなツリーの上部のみを示していることに注意してください。私のコードは、F の勝利のルートをたどるだけなので、真のツリー トラバーサルではありません。それにもかかわらず、どのツリー トラバーサル コードが私のコードと最も密接に並列するのでしょうか? またその理由は? 正しいトラバーサルには 8 ポイント、選択した説明には 7 ポイントの 1 つか 2 つのセンテンスだけが必要です。(私は私の記事の上部に与えられた画像を入れました)
回答: 敗者を見つけて正しいパスを決定するには、最初に両方の子を調べなければならないため、オーダー トラバーサルをポストします。
c++ - toString 関数 C++ のバイナリ ツリー
toString メソッドをどのように実装する必要があるかについて、この割り当てによる制限があるため、しばらくの間、この関数で問題が発生しています。結果文字列を作成し、それを二分木の文字列を順番に返すメソッドと等しく設定する元のメソッドがあります。以下のコードを提供しました。
定数関数は外部変数を操作できないため、私の戦術は、再帰ヘルパー関数に文字列パラメーターを渡し、ノードが渡されたときにノードを追加し、最後にその文字列を返すことでした。しかし、「アクセス違反読み取り場所 0xcccccccc」エラーが発生しました。これは再帰に何か問題があることを意味していることはわかっていますが、エラーを特定することはできません。前もって感謝します。
recursion - 再帰が不規則な BST トラバーサルでどのように機能するかを誰かが説明できますか?
インオーダートラバーサルのコードは次のようになります
すべてをコーディングしましたが、正常に動作します。その後、私はもっと考え始め、プロセスを考えすぎて、再帰が実際にどのように機能するかについて迷っています。ずっと左だと思うので、両方のノードがnullであるため、再帰は終了します。
私がずっと左にいて、左右のノードの両方が NULL である場合、再帰呼び出しによってどのように親ノードに戻ってトラバーサルを続けることができますか?
algorithm - Just Inorder Traversal から Preoder を見つけますか?
私は、4 日前にかかった中間試験の問題に出くわしました。理解できませんでした。
木の順不同のトラバーサルを行ったときに答えが得られたと仮定すると、プリオーダーのトラバーサルの場合、どうして解を見つけることができるのでしょうか。次の例がありますE A C K F H D B G
。
preorder traversal は何を返しますか?
誰が私を学習面で助けてくれますか?
編集:答えはFAEKCDHGBです。しかし、これはどのように計算されますか?
binary-tree - 順番に走査してツリー内の一意の単語のみを出力する方法
質問は基本的にそれをすべて言っていますが、これは私がこれまでに持っているものです
}
アイデアは、最初に順不同のトラバーサルを実行し、代わりにすべての単語をそのカウントとともに出力するというものです。しかし、後でそのトラバーサルを再訪して、一意の単語のみを出力したいのですが、そのためのアルゴリズムコードを作成する方法がわかりません。単語数が 1 の場合、その単語はファイル内で 1 回しか出現しないため、一意である必要があります。誰かが私を助けることができれば、それは素晴らしいことです。
java - 二分木 - 順序通りのトラバーサルで位置を見つける
と呼ばれるメソッドを実装する必要があるバイナリ検索ツリーがあります
問題は、順序通りのトラバーサルで位置が必要なことです。
順番にトラバーサルを見つけるには、次のコードを使用しますが、再帰呼び出しを数えて正しい位置を取得する方法がわかりません。