問題タブ [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.

0 投票する
1 に答える
664 参照

tree - - 二分木パズル - これらのトラバーサルから木を描く:

順序: SAEUYQRPDFKLM

プレオーダー: FASQYEUPRDKLM

これが私が今まで思いついたものです。

中盤をどうするかかなり悩んでいます。どの組み合わせも機能していないようです。誰にもトリックがありますか?どうすればこれにアプローチできますか? 私はこれに2時間頭を悩ませてきました。

木を元に戻さなければなりません。

0 投票する
1 に答える
182 参照

binary-tree - 2 つのトラバーサル出力からのバイナリ ツリーの作成

これは宿題ですが、何らかの理由で宿題タグを追加できません。

データ構造のラボが割り当てられました。最後の質問では、特定のトラバーサル メソッドから次の出力を生成するバイナリ ツリーを見つけるよう求められました。

この木について次のことを確認しました。

ルート ノードは 3 です。ルート ノードは左の子であり、ツリーの左の子のみが 12 です。ルート ノードの右の子は 6 です。最も右のノードは 5 です。

残念ながら、私は続行する方法について行き詰まっています。どんなヒントでも大歓迎です。

0 投票する
1 に答える
1520 参照

c++ - 二分木: 反復的な順不同印刷

私は組み込みのインオーダー トラバーサル (ネストされたを使用) を使用して、赤黒ツリーの実装を作成しましたclass Iterator

順序トラバーサルを使用してバイナリ ツリーをグラフィカルに出力する (可能であれば反復的な) アルゴリズムを探しています。

印刷方向は関係ありません。つまり、コマンドライン出力のツリーは、次のように方向付け (フォーマット) できます。

またはこのように:

または上下逆さまでも構いませんが、以下に示す方法を使用して、インオーダー トラバーサルを使用してツリーを出力する必要があります。

可能なので、次のようにします。

これは元のコードです:

私は同様の質問で回答を調査しましたが、どのアルゴリズムも順序通りのトラバーサルを利用していません (そしてそれらのほとんどは再帰的です)。

編集:

@nonsensickle のアドバイスに従って、コードは最小限に切り詰められています。

0 投票する
3 に答える
2714 参照

java - 二分木のための順不同イテレータ - Java

これが私のNodeクラスです:

.. 等々。

これは、 next() および hasNext() メソッドを使用した順不同イテレータです。

問題は、左側のサブツリーの左側のノードのみを出力することです。たとえば、ルート ノード 17、左ノード 15、右ノード 19 を持つツリーの場合、15 のみが出力されます。
したがって、右サブツリーには入りません。

問題はそのelse while (true)部分にあると思いますが、これを修正する方法がわかりません。

0 投票する
1 に答える
904 参照

tree - ツリー トラバーサル inorder LISP

順番にアクセスされたツリー(必ずしもバイナリツリーではない)のノードのリストを返そうとしています。

ツリーは、サブリストを含むリストとして表されます。たとえば、(a (b) (c (d) (e)))、b - 左サブツリー、(c (d) (e)) - 右サブツリー、a -根。結果は次のようになります: b,a,d,c,e

これは私のコードですが、常に「スタック オーバーフロー」エラーが発生するようです。誰か助けてくれませんか?

0 投票する
1 に答える
392 参照

c++ - 非再帰的な inorder メソッドで二分木をたどることはできません

キーボードからの入力データで構築されたバイナリ ツリーをトラバースしようとしています。二分木にデータが正常に挿入されました。私は switch ステートメントを持っています。'case 3' は、非再帰的な Inorder トラバーサル アルゴリズムを使用してバイナリ ツリーをトラバース (および出力) する必要があります。ただし、「ケース 3」が呼び出されると、EXC_BAD_ACCESS エラーが発生しますが、これはまったく意味がありません。誰かがこれで私を助けてくれたら、私はもっとうれしいです.

(RootPtr は、グローバルに定義されたバイナリ ツリーの最上位のレベル 0 ノードです。GetNodeS は、基本的に StackPtr 型ポインタの初期化関数 (malloc を使用) です。)

よろしくお願いします。

関連するコードは次のとおりです。

これらは構造体定義です。

これらはプッシュ機能とポップ機能です。

これがトラバース機能で、

これは、反復トラバース関数を呼び出そうとする switch ケースです。

0 投票する
2 に答える
45 参照

c - insert_node 関数がルートを消去するのはなぜですか? (ハ)

メンバー文字列を持つノードを BST に挿入し、その BST に関する情報 (高さ、順序通りのトラバーサル、葉の数など) を出力するプログラムを作成しようとしています...

現時点では、順不同のトラバーサルを行うと、ツリーの最下部にあるはずであっても、最後に入力された文字列がルートとして出力されます。

コードは次のとおりです。

挿入機能:

順序トラバーサル関数:

それらがどのように使用されているか:

入力は次のようになります。

したがって、出力(順序どおりのトラバーサルを行う場合)は次のようになります。

しかし、代わりに次のとおりです。

0 投票する
2 に答える
1610 参照

python-3.x - ツリートラバーサル python

preorder(t):postorder(t):、 の3 つの関数を定義する必要がありinorder(t):ます。

各関数は二分木を入力として取り、リストを返します。次に、リストは、ツリー要素がそれぞれのトラバーサルでアクセスされるのと同じ方法で並べられる必要があります (ポストオーダー、プリオーダー、またはインオーダー)。

それぞれのコードを書きましたが、別の関数 ( flat_list()) を呼び出すとエラーが発生し続け、インデックス エラーがスローされます。

私のトラバーサル メソッドのコードは次のとおりです。

これは私が flat_list2 を呼び出す方法です