問題タブ [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 - javaでの配列リストの順序通りのトラバーサル
値を持ついくつかのクラスの配列リストがあります
オブジェクトは、格納された親ノード ID を持つようなものです (つまり、ノード d3 、Parent(d3)-root の場合)。関係は、特定のノードの下にあるすべてのノードがその子であるようなものX
ですdepth=X.depth+1
。したがって、ルートの子は次のとおりですd3,c4,f5,e6
。d3 の子は次のとおりです。 : c3
, e3
,c5
ここで、インオーダー トラバーサルを生成するコードを作成する必要があります。何かのようなもの :
私はこのようなJavaメソッドを書いています
しかし、これはジェネリックではなく(深さが増加/変更された場合は機能しません)、不完全でもあります。私が持っている配列リストからこの順序通りのトラバーサルを行うにはどうすればよいですか。Arraylist にノード名、その深さ、およびその親のシリアル番号があるとします。誰かが私にポインタを与えることができますか?これは二分木ではありません。
java - 順序二分木法の戻り値
inorder メソッドから値を取得し、テキスト ファイルに保存する必要があります。次のコードでどのように達成できますか? System.out.println の代わりに return を使用して別の write メソッドに値を返し、テキスト ファイルに格納すると、次の root.getRight() ステートメントに移動しません。何か助けはありますか?
c - C 二分探索木の挿入
リンクリストを順序付きbstに処理するためにバイナリ検索ツリーを構築しようとしています。root の出力は正しく表示されますが、それ以外は表示されません。ゴミが吐き出されますが、その理由はわかりません。printf ステートメントを設定すると、実際の文字列が挿入されていることがわかります。私は何か間違ったことをしていますか?これはすべてのコードではありませんが、私がやっていることを人々が理解できるようにするためには十分だと思います。提案?
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」エラーが発生しました。これは再帰に何か問題があることを意味していることはわかっていますが、エラーを特定することはできません。前もって感謝します。