diff options
Diffstat (limited to 'binary_search_tool/full_bisect_test/preorder_norecurse.c.bad')
-rw-r--r-- | binary_search_tool/full_bisect_test/preorder_norecurse.c.bad | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/binary_search_tool/full_bisect_test/preorder_norecurse.c.bad b/binary_search_tool/full_bisect_test/preorder_norecurse.c.bad new file mode 100644 index 00000000..a8b4b487 --- /dev/null +++ b/binary_search_tool/full_bisect_test/preorder_norecurse.c.bad @@ -0,0 +1,29 @@ +#include <stdlib.h> +#include <stdio.h> +#include "bin-trees.h" + +static void +real_pre_order_traverse_no_recurse (tree_ptr root) +{ + struct stack_struct *stack = NULL; + + if (root != NULL) + push (&stack, root); + + while (stack != NULL) + { + tree_ptr current = pop (&stack); + printf ("%d ", current->data); + if (current->right != NULL) + push (&stack, current->right); + } + return; +} + +void +pre_order_traverse_no_recurse (tree_ptr root) +{ + printf ("pre-order traversal, without recursion: \n"); + real_pre_order_traverse_no_recurse (root); + printf ("\n"); +} |