update: print Tree

This commit is contained in:
Sobottasgithub 2026-02-09 08:52:52 +01:00
parent a97d9e0fa8
commit 0685fb11bd
2 changed files with 29 additions and 0 deletions

View File

@ -111,4 +111,32 @@ public class BinaryTree {
}
}
}
// Print functions from https://www.baeldung.com/java-print-binary-tree-diagram
public void print() {
StringBuilder sb = new StringBuilder();
traversePreOrder(sb, "", "", rootNode);
System.out.println(sb.toString());
}
private void traversePreOrder(StringBuilder sb, String padding, String pointer, Node node) {
if (node != null) {
sb.append(padding);
sb.append(pointer);
sb.append(node.getContent());
sb.append("\n");
StringBuilder paddingBuilder = new StringBuilder(padding);
paddingBuilder.append("| ");
String paddingForBoth = paddingBuilder.toString();
String pointerForRight = "---";
String pointerForLeft = (node.getRightNode() != null) ? "+--" : "'--";
traversePreOrder(sb, paddingForBoth, pointerForLeft, node.getLeftNode());
traversePreOrder(sb, paddingForBoth, pointerForRight, node.getRightNode());
}
}
}

View File

@ -13,6 +13,7 @@ public class Main {
binaryTree.insert(8);
binaryTree.insert(16);
binaryTree.print();
System.out.println(binaryTree.search(42));
// Test values not in tree