update: print Tree
This commit is contained in:
parent
a97d9e0fa8
commit
0685fb11bd
@ -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());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user