Skip to content

Commit 84e9d5d

Browse files
authored
Java tree traversal: updated dfsRecursiveInOrderBinary (#899)
1 parent 9eb11d5 commit 84e9d5d

File tree

2 files changed

+21
-19
lines changed

2 files changed

+21
-19
lines changed

contents/tree_traversal/code/java/Tree.java

+15-13
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
// submitted by xam4lor
21
import java.util.ArrayList;
32
import java.util.PriorityQueue;
43
import java.util.Queue;
@@ -45,19 +44,22 @@ public void dfsRecursiveInOrderBinary() {
4544
dfsRecursiveInOrderBinary(this.root);
4645
}
4746

48-
// This assumes only 2 children
4947
private void dfsRecursiveInOrderBinary(Node node) {
50-
if (node.children.size() > 2) {
51-
System.err.println("Not a binary tree at dfsRecursiveInOrderBinary()!");
52-
return;
53-
}
54-
55-
if (node.children.size() > 1) {
56-
dfsRecursiveInOrderBinary(node.children.get(0));
57-
System.out.println(node.id);
58-
dfsRecursiveInOrderBinary(node.children.get(1));
59-
} else {
60-
System.out.println(node.id);
48+
switch (node.children.size()) {
49+
case 2:
50+
dfsRecursiveInOrderBinary(node.children.get(0));
51+
System.out.println(node.id);
52+
dfsRecursiveInOrderBinary(node.children.get(1));
53+
break;
54+
case 1:
55+
dfsRecursiveInOrderBinary(node.children.get(0));
56+
System.out.println(node.id);
57+
break;
58+
case 0:
59+
System.out.println(node.id);
60+
break;
61+
default:
62+
System.err.println("Not a binary tree at dfsRecursiveInOrderBinary()!");
6163
}
6264
}
6365

contents/tree_traversal/tree_traversal.md

+6-6
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ Trees are naturally recursive data structures, and because of this, we cannot ac
1212
{% sample lang="c" %}
1313
[import:7-11, lang:"c"](code/c/tree_traversal.c)
1414
{% sample lang="java" %}
15-
[import:110-126, lang:"java"](code/java/Tree.java)
15+
[import:112-128, lang:"java"](code/java/Tree.java)
1616
{% sample lang="js" %}
1717
[import:1-10, lang:"javascript"](code/javascript/tree.js)
1818
As a note, a `node` struct is not necessary in javascript, so this is an example of how a tree might be constructed.
@@ -58,7 +58,7 @@ Because of this, the most straightforward way to traverse the tree might be recu
5858
{% sample lang="c" %}
5959
[import:37-45, lang:"c"](code/c/tree_traversal.c)
6060
{% sample lang="java" %}
61-
[import:21-27, lang:"java"](code/java/Tree.java)
61+
[import:20-26, lang:"java"](code/java/Tree.java)
6262
{% sample lang="js" %}
6363
[import:12-15, lang:"javascript"](code/javascript/tree.js)
6464
{% sample lang="py" %}
@@ -112,7 +112,7 @@ Now, in this case the first element searched through is still the root of the tr
112112
{% sample lang="c" %}
113113
[import:47-53, lang:"c"](code/c/tree_traversal.c)
114114
{% sample lang="java" %}
115-
[import:34-41, lang:"java"](code/java/Tree.java)
115+
[import:33-40, lang:"java"](code/java/Tree.java)
116116
{% sample lang="js" %}
117117
[import:17-20, lang:"javascript"](code/javascript/tree.js)
118118
{% sample lang="py" %}
@@ -161,7 +161,7 @@ In this case, the first node visited is at the bottom of the tree and moves up t
161161
{% sample lang="c" %}
162162
[import:55-73, lang:"c"](code/c/tree_traversal.c)
163163
{% sample lang="java" %}
164-
[import:48-62, lang:"java"](code/java/Tree.java)
164+
[import:47-64, lang:"java"](code/java/Tree.java)
165165
{% sample lang="js" %}
166166
[import:22-34, lang:"javascript"](code/javascript/tree.js)
167167
{% sample lang="py" %}
@@ -219,7 +219,7 @@ In code, it looks like this:
219219
{% sample lang="c" %}
220220
[import:75-93, lang:"c"](code/c/tree_traversal.c)
221221
{% sample lang="java" %}
222-
[import:65-79, lang:"java"](code/java/Tree.java)
222+
[import:67-81, lang:"java"](code/java/Tree.java)
223223
{% sample lang="js" %}
224224
[import:36-43, lang:"javascript"](code/javascript/tree.js)
225225
{% sample lang="py" %}
@@ -270,7 +270,7 @@ And this is exactly what Breadth-First Search (BFS) does! On top of that, it can
270270
{% sample lang="c" %}
271271
[import:95-113, lang:"c"](code/c/tree_traversal.c)
272272
{% sample lang="java" %}
273-
[import:81-95, lang:"java"](code/java/Tree.java)
273+
[import:83-97, lang:"java"](code/java/Tree.java)
274274
{% sample lang="js" %}
275275
[import:45-52, lang:"javascript"](code/javascript/tree.js)
276276
{% sample lang="py" %}

0 commit comments

Comments
 (0)