diff --git a/BinaryTree.java b/BinaryTree.java index 1400b2e..17e09db 100644 --- a/BinaryTree.java +++ b/BinaryTree.java @@ -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()); + // } + // } }