update: traversePreOrder recursiv
This commit is contained in:
parent
0685fb11bd
commit
9b6164665a
@ -112,31 +112,37 @@ 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) {
|
||||
public void traversePreOrder(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());
|
||||
System.out.print(" " + node.getContent());
|
||||
traversePreOrder(node.getLeftNode());
|
||||
traversePreOrder(node.getRightNode());
|
||||
}
|
||||
}
|
||||
|
||||
// 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