問題タブ [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.
binary-tree - 2 つのトラバーサル出力からのバイナリ ツリーの作成
これは宿題ですが、何らかの理由で宿題タグを追加できません。
データ構造のラボが割り当てられました。最後の質問では、特定のトラバーサル メソッドから次の出力を生成するバイナリ ツリーを見つけるよう求められました。
と
この木について次のことを確認しました。
ルート ノードは 3 です。ルート ノードは左の子であり、ツリーの左の子のみが 12 です。ルート ノードの右の子は 6 です。最も右のノードは 5 です。
残念ながら、私は続行する方法について行き詰まっています。どんなヒントでも大歓迎です。
c++ - 二分木: 反復的な順不同印刷
私は組み込みのインオーダー トラバーサル (ネストされたを使用) を使用して、赤黒ツリーの実装を作成しましたclass Iterator
。
順序トラバーサルを使用してバイナリ ツリーをグラフィカルに出力する (可能であれば反復的な) アルゴリズムを探しています。
印刷方向は関係ありません。つまり、コマンドライン出力のツリーは、次のように方向付け (フォーマット) できます。
またはこのように:
または上下逆さまでも構いませんが、以下に示す方法を使用して、インオーダー トラバーサルを使用してツリーを出力する必要があります。
可能なので、次のようにします。
これは元のコードです:
私は同様の質問で回答を調査しましたが、どのアルゴリズムも順序通りのトラバーサルを利用していません (そしてそれらのほとんどは再帰的です)。
編集:
@nonsensickle のアドバイスに従って、コードは最小限に切り詰められています。
java - 二分木のための順不同イテレータ - Java
これが私のNodeクラスです:
.. 等々。
これは、 next() および hasNext() メソッドを使用した順不同イテレータです。
問題は、左側のサブツリーの左側のノードのみを出力することです。たとえば、ルート ノード 17、左ノード 15、右ノード 19 を持つツリーの場合、15 のみが出力されます。
したがって、右サブツリーには入りません。
問題はそのelse while (true)
部分にあると思いますが、これを修正する方法がわかりません。
tree - ツリー トラバーサル inorder LISP
順番にアクセスされたツリー(必ずしもバイナリツリーではない)のノードのリストを返そうとしています。
ツリーは、サブリストを含むリストとして表されます。たとえば、(a (b) (c (d) (e)))、b - 左サブツリー、(c (d) (e)) - 右サブツリー、a -根。結果は次のようになります: b,a,d,c,e
これは私のコードですが、常に「スタック オーバーフロー」エラーが発生するようです。誰か助けてくれませんか?
c++ - 非再帰的な inorder メソッドで二分木をたどることはできません
キーボードからの入力データで構築されたバイナリ ツリーをトラバースしようとしています。二分木にデータが正常に挿入されました。私は switch ステートメントを持っています。'case 3' は、非再帰的な Inorder トラバーサル アルゴリズムを使用してバイナリ ツリーをトラバース (および出力) する必要があります。ただし、「ケース 3」が呼び出されると、EXC_BAD_ACCESS エラーが発生しますが、これはまったく意味がありません。誰かがこれで私を助けてくれたら、私はもっとうれしいです.
(RootPtr は、グローバルに定義されたバイナリ ツリーの最上位のレベル 0 ノードです。GetNodeS は、基本的に StackPtr 型ポインタの初期化関数 (malloc を使用) です。)
よろしくお願いします。
関連するコードは次のとおりです。
これらは構造体定義です。
これらはプッシュ機能とポップ機能です。
これがトラバース機能で、
これは、反復トラバース関数を呼び出そうとする switch ケースです。
c - insert_node 関数がルートを消去するのはなぜですか? (ハ)
メンバー文字列を持つノードを BST に挿入し、その BST に関する情報 (高さ、順序通りのトラバーサル、葉の数など) を出力するプログラムを作成しようとしています...
現時点では、順不同のトラバーサルを行うと、ツリーの最下部にあるはずであっても、最後に入力された文字列がルートとして出力されます。
コードは次のとおりです。
挿入機能:
順序トラバーサル関数:
それらがどのように使用されているか:
入力は次のようになります。
したがって、出力(順序どおりのトラバーサルを行う場合)は次のようになります。
しかし、代わりに次のとおりです。
python-3.x - ツリートラバーサル python
preorder(t):
、postorder(t):
、 の3 つの関数を定義する必要がありinorder(t):
ます。
各関数は二分木を入力として取り、リストを返します。次に、リストは、ツリー要素がそれぞれのトラバーサルでアクセスされるのと同じ方法で並べられる必要があります (ポストオーダー、プリオーダー、またはインオーダー)。
それぞれのコードを書きましたが、別の関数 ( flat_list()
) を呼び出すとエラーが発生し続け、インデックス エラーがスローされます。
私のトラバーサル メソッドのコードは次のとおりです。
これは私が flat_list2 を呼び出す方法です