#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);
    if (current->left != NULL)
      push (&stack, current->left);
  }
  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");
}
