2017-11-07 8 views
0

バイナリツリーを逆順に描画したい。たとえば、私は4つの要素を持っています。私はそれらを葉ノードに入れて、次の反復ではルートノードが1つあるまで2つを結合します。すべての親は、新しい親の作成に使用されるIdentityを持っています。ノードには任意のオブジェクトが含まれます。注文は必須ではありません。 2つのノードは、これらのノードは、任意の順序ボトムアップの方法バイナリツリー

例であることができる次の反復では、最後のレベルで組み合わせることができ、このようなものです:

binary tree

これは理解のためだけの例です。解は、説明のための任意の言語またはアルゴリズムであり得る。

+3

あなたのためにコードを記述していただきたいようです。多くのユーザーは、苦痛を伴うコーダーのコードを作成したいと考えていますが、通常、ポスターがすでに自分で問題を解決しようとしたときにのみ役立ちます。この努力を示す良い方法は、[最小で完全で検証可能な例](http://stackoverflow.com/help/mcve)を含めることです。投稿する前に*完了したと思われる[イントロツアー](https://stackoverflow.com/tour)をチェックしてください。特に[How to Ask](http://stackoverflow.com/help/how-to-ask) 。 – Prune

+0

私はコードbtwを必要としません、私はそれを自分で行うことができます。誰かがアイデアを持っているなら、私は他の人の助けを借りてロジックを構築しようとしています。 – afaq

+0

私は多くの方法を試して検索しましたが、私の目標に関連するものを見つけることができませんでした。もしあなたがここで誰かを堕落させるなら、あなたは他の場所を見つけるべきです。私は経験豊かな人ではないかもしれない – afaq

答えて

1

レベル順のトラバーサルを使用し、各レベルの内容を文字列に格納します。各レベルが完了したら、文字列を印刷します。

これは基本です。

上記のような魅力的な出力が必要な場合は、要素を取り除くためのより良い方法を調べることができます。また、グラフィックスライブラリを使用してノードを表示することもできます。

+0

もう1つの混乱は、私はちょうど左か右に関係なくノードを上向きに結合したいです。例番号には順序があります。私のオブジェクトは順序がありません – afaq

+0

一方的な方法は、Pythonのツリー機能を使用しています。 https://stackoverflow.com/questions/2358045/how-can-i-implement-a-tree-in-python-are-there-any-built-in-data-structures-このリンクはあなたを助けます –

関連する問題