Heim > Java > javaLernprogramm > Wie drucke ich einen Binärbaum in hierarchischer Form in Java?

Wie drucke ich einen Binärbaum in hierarchischer Form in Java?

DDD
Freigeben: 2024-11-10 17:25:02
Original
277 Leute haben es durchsucht

How to Print a Binary Tree in Hierarchical Form in Java?

Hierarchischen Binärbaum in Java drucken

Um einen Binärbaum zu drucken und seine hierarchische Struktur in einer Textdarstellung anzuzeigen, können Sie den Builder verwenden Muster. Mit diesem Muster können Sie inkrementell eine baumartige Ausgabe erstellen.

Ein Ansatz besteht darin, eine benutzerdefinierte TreeNode-Klasse zu erstellen, die jeden Knoten im Baum darstellt:

public class TreeNode<A extends Comparable> {
    TreeNode<A> left, right;
    A data;
}
Nach dem Login kopieren

Um den Baum zu drucken, Sie können eine rekursive Hilfsfunktion verwenden, die eine Zeichenfolgendarstellung des Baums aufbaut:

public String toString() {
    StringBuilder builder = new StringBuilder();
    print(builder, "", "");
    return builder.toString();
}

private void print(StringBuilder builder, String prefix, String childrenPrefix) {
    builder.append(prefix).append(data).append('\n');
    if (left != null) {
        left.print(builder, childrenPrefix + "├── ", childrenPrefix + "│   ");
    }
    if (right != null) {
        right.print(builder, childrenPrefix + "└── ", childrenPrefix + "    ");
    }
}
Nach dem Login kopieren

Hier stellt prefix das Präfix für den aktuellen Knoten dar undchildrenPrefix stellt das Präfix für seine untergeordneten Knoten dar. Die Funktion druckt jedes untergeordnete Element rekursiv mit einem entsprechenden Präfixeinzug aus.

Durch den Aufruf von toString() auf dem Wurzelknoten können Sie eine hierarchische Darstellung des gesamten Baums erhalten:

TreeNode<Integer> root = new TreeNode<>(4);
root.left = new TreeNode<>(2);
root.right = new TreeNode<>(5);
System.out.println(root.toString());
Nach dem Login kopieren

Dies wird Ausgabe:

4
├── 2
└── 5
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie drucke ich einen Binärbaum in hierarchischer Form in Java?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage