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; }
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 + " "); } }
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());
Dies wird Ausgabe:
4 ├── 2 └── 5
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!