はじめに:
理解を容易にするためには、バイナリ ツリーの構造を視覚化することが重要です。そしてデバッグ。この記事では、バイナリ ツリーを図形式で出力するための Java ソリューションを検討し、ツリーの構造を明確に表現します。
ソリューション:
このソリューションの主な目標次の例のように、バイナリ ツリーを行単位で出力します。
4 / \ 2 5
この目的のために、提供されたコードはカスタム Node クラスを確立します。
public class Node<A extends Comparable> { Node<A> left, right; A data; public Node(A data){ this.data = data; } }
Printing by Lines:
このソリューションの重要な洞察は、ツリーをトップダウン方式で行ごとに出力することです。各ノードの子は、ツリー内のレベルを示すために適切なインデントを付けて後続の行に出力されます。
たとえば、次の構造を持つツリーを視覚化するには:
4 / \ 2 5 / \ / 1 3 6
出力は次のようになります。次のようなものです:
4 ├── 2 │ ├── 1 │ └── 3 └── 5 └── 6
コード実装:
コア ロジックは TreeNode クラスの print メソッドにカプセル化されています:
public void print(StringBuilder buffer, String prefix, String childrenPrefix) { buffer.append(prefix); buffer.append(name); buffer.append('\n'); for (Iterator<TreeNode> it = children.iterator(); it.hasNext();) { TreeNode next = it.next(); if (it.hasNext()) { next.print(buffer, childrenPrefix + "├── ", childrenPrefix + "│ "); } else { next.print(buffer, childrenPrefix + "└── ", childrenPrefix + " "); } } }
このメソッドはツリーを再帰的に走査し、行ごとに出力し、ツリーの構造を示す適切なインデントを考慮します。
注:
このソリューションは次の点に焦点を当てています。任意のツリーを出力する場合、各ノードが最大 2 つの子を持つように制限することで、バイナリ ツリーを具体的にターゲットにするように簡単に変更できます。
以上がJava でバイナリ ツリー図を印刷するには?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。