Skip to content

Commit 6b2a4e2

Browse files
committed
Fixing an error in tree_traversal.c
1 parent 9d04116 commit 6b2a4e2

File tree

1 file changed

+13
-8
lines changed

1 file changed

+13
-8
lines changed

chapters/tree_traversal/code/c/tree_traversal.c

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -95,17 +95,22 @@ void dfs_recursive_postorder(node n) {
9595
}
9696

9797
void dfs_recursive_inorder_btree(node n) {
98-
if (n.children_num > 2) {
99-
printf("This is not a binary tree.\n");
100-
return;
101-
}
102-
103-
if (n.children_num > 0) {
98+
switch (n.children_num) {
99+
case 2:
104100
dfs_recursive_inorder_btree(n.children[0]);
105101
printf("%d\n", n.id);
106102
dfs_recursive_inorder_btree(n.children[1]);
107-
} else {
103+
break;
104+
case 1:
105+
dfs_recursive_inorder_btree(n.children[0]);
108106
printf("%d\n", n.id);
107+
break;
108+
case 0:
109+
printf("%d\n", n.id);
110+
break;
111+
default:
112+
printf("This is not a binary tree.\n");
113+
break;
109114
}
110115
}
111116

@@ -164,7 +169,7 @@ void destroy_tree(node *n) {
164169
int main() {
165170
node root;
166171
create_tree(&root, 3, 3);
167-
//dfs_recursive(root);
172+
dfs_recursive(root);
168173
//dfs_stack(root);
169174
//bfs_queue(root);
170175
destroy_tree(&root);

0 commit comments

Comments
 (0)