#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");
}
