問題タブ [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 に答える
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 を呼び出す方法です

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

haskell - バイナリ ツリーの順序どおりのトラバーサルのこの実装を改善できますか?

toList1二分木用の単純な順序走査関数 ( ) を作成しました。ただし、その複雑さ(メモリ/時間)が心配です。それを実装するより良い方法はありますか?

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

binary-tree - 二分探索木探索

バイナリ ツリーの学習を始めたばかりで、C で自分自身を実装しようとしました。他の 2 つが間違っているのに、InOrder Traversal だけが正しく表示される理由がちょっとわかりません。私は本当にこれを理解することはできません。ノードを直接挿入してみましたが、結果は同じです。

これが間違っているのか、それともトラバーサルの理解が間違っているのかを理解するのを手伝ってください。出力は次のとおりです。 出力端子

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

c++ - 二分探索木を順番に出力

望ましい動作

次のように、追加のタブを付けて BST の各レベルを出力します。

実際の動作

これが私の現在のコードです。どこが間違っているのかわかりません。

0 投票する
0 に答える
63 参照

java - 二分探索木の追加と順序付けの方法を修正するのに助けが必要

これら2つのメソッド( add() と inOrder() )を実装する必要がある割り当てに取り組んでいます。

以下のコードは、私がこれまでに持っているものです。私が助けを必要としているのは、コードが機能するように調整することです。現在、それは私が望んでいることをしません。

add() はツリーに最大 3 つのレベルを追加するだけで、その後は 3 番目のレベルのノードを変更するだけです。3 レベルを超えるコードの書き方がわかりません。

inOrder() は機能しません。実行すると、停止して何も出力せず、強制的に実行を停止します。

さらに情報が必要な場合はお知らせください。

追加():

順番に():