Skip to content

Commit

Permalink
Java tree traversal: updated dfsRecursiveInOrderBinary (algorithm-arc…
Browse files Browse the repository at this point in the history
  • Loading branch information
henrikac authored Oct 23, 2021
1 parent 9eb11d5 commit 84e9d5d
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 19 deletions.
28 changes: 15 additions & 13 deletions contents/tree_traversal/code/java/Tree.java
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
// submitted by xam4lor
import java.util.ArrayList;
import java.util.PriorityQueue;
import java.util.Queue;
Expand Down Expand Up @@ -45,19 +44,22 @@ public void dfsRecursiveInOrderBinary() {
dfsRecursiveInOrderBinary(this.root);
}

// This assumes only 2 children
private void dfsRecursiveInOrderBinary(Node node) {
if (node.children.size() > 2) {
System.err.println("Not a binary tree at dfsRecursiveInOrderBinary()!");
return;
}

if (node.children.size() > 1) {
dfsRecursiveInOrderBinary(node.children.get(0));
System.out.println(node.id);
dfsRecursiveInOrderBinary(node.children.get(1));
} else {
System.out.println(node.id);
switch (node.children.size()) {
case 2:
dfsRecursiveInOrderBinary(node.children.get(0));
System.out.println(node.id);
dfsRecursiveInOrderBinary(node.children.get(1));
break;
case 1:
dfsRecursiveInOrderBinary(node.children.get(0));
System.out.println(node.id);
break;
case 0:
System.out.println(node.id);
break;
default:
System.err.println("Not a binary tree at dfsRecursiveInOrderBinary()!");
}
}

Expand Down
12 changes: 6 additions & 6 deletions contents/tree_traversal/tree_traversal.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ Trees are naturally recursive data structures, and because of this, we cannot ac
{% sample lang="c" %}
[import:7-11, lang:"c"](code/c/tree_traversal.c)
{% sample lang="java" %}
[import:110-126, lang:"java"](code/java/Tree.java)
[import:112-128, lang:"java"](code/java/Tree.java)
{% sample lang="js" %}
[import:1-10, lang:"javascript"](code/javascript/tree.js)
As a note, a `node` struct is not necessary in javascript, so this is an example of how a tree might be constructed.
Expand Down Expand Up @@ -58,7 +58,7 @@ Because of this, the most straightforward way to traverse the tree might be recu
{% sample lang="c" %}
[import:37-45, lang:"c"](code/c/tree_traversal.c)
{% sample lang="java" %}
[import:21-27, lang:"java"](code/java/Tree.java)
[import:20-26, lang:"java"](code/java/Tree.java)
{% sample lang="js" %}
[import:12-15, lang:"javascript"](code/javascript/tree.js)
{% sample lang="py" %}
Expand Down Expand Up @@ -112,7 +112,7 @@ Now, in this case the first element searched through is still the root of the tr
{% sample lang="c" %}
[import:47-53, lang:"c"](code/c/tree_traversal.c)
{% sample lang="java" %}
[import:34-41, lang:"java"](code/java/Tree.java)
[import:33-40, lang:"java"](code/java/Tree.java)
{% sample lang="js" %}
[import:17-20, lang:"javascript"](code/javascript/tree.js)
{% sample lang="py" %}
Expand Down Expand Up @@ -161,7 +161,7 @@ In this case, the first node visited is at the bottom of the tree and moves up t
{% sample lang="c" %}
[import:55-73, lang:"c"](code/c/tree_traversal.c)
{% sample lang="java" %}
[import:48-62, lang:"java"](code/java/Tree.java)
[import:47-64, lang:"java"](code/java/Tree.java)
{% sample lang="js" %}
[import:22-34, lang:"javascript"](code/javascript/tree.js)
{% sample lang="py" %}
Expand Down Expand Up @@ -219,7 +219,7 @@ In code, it looks like this:
{% sample lang="c" %}
[import:75-93, lang:"c"](code/c/tree_traversal.c)
{% sample lang="java" %}
[import:65-79, lang:"java"](code/java/Tree.java)
[import:67-81, lang:"java"](code/java/Tree.java)
{% sample lang="js" %}
[import:36-43, lang:"javascript"](code/javascript/tree.js)
{% sample lang="py" %}
Expand Down Expand Up @@ -270,7 +270,7 @@ And this is exactly what Breadth-First Search (BFS) does! On top of that, it can
{% sample lang="c" %}
[import:95-113, lang:"c"](code/c/tree_traversal.c)
{% sample lang="java" %}
[import:81-95, lang:"java"](code/java/Tree.java)
[import:83-97, lang:"java"](code/java/Tree.java)
{% sample lang="js" %}
[import:45-52, lang:"javascript"](code/javascript/tree.js)
{% sample lang="py" %}
Expand Down

0 comments on commit 84e9d5d

Please sign in to comment.