int main()
{
  char programName[] = "trees";

  int data;
  int chosenOperation;

  printf ( "Welcome to %s\n", programName );

  BinaryTree *theTree = NULL;
  initializeTree ( theTree );

  do
    {
      printf ( "%s", mainMenuString );
      chosenOperation = fetchINT ( stdin );
      switch ( chosenOperation )
        {
        case AddToTree:
          if ( isTreeFull ( *theTree ) )
            {
              printf ( "sorry the queue is full\n" );
            }
          else
            {
              printf ( "Enter a number: " );
              data = fetchINT ( stdin );
              addToTree ( theTree, data );
            }
          break;
        case 2:
          if ( isTreeEmpty ( *theTree ) )
            {
              printf ( "sorry the queue is empty\n" );
            }
          else
            {
              printf ( "The number is %d\n", takeFromTree ( theTree, data ) );
            }
          break;
        case 3:
          if ( isTreeEmpty ( *theTree ) )
            {
              printf ( "sorry the queue is empty\n" );
            }
          else
            {
              printTree ( theTree );
            }
          break;
        case 4:
          printf ( "bye\n" );
          break;
        default:
          printf ( "Oops Wrong input\n" );
          chosenOperation = AddToTree;
        }

    }
  while ( ! ( ( chosenOperation < AddToTree )
              || ( chosenOperation >= Quit ) ) );
  emptyTree ( theTree );
  free ( theTree );
  return EXIT_SUCCESS;
}
Beispiel #2
0
void traverse(Tree* tp)
{
  if (!isTreeEmpty(tp)) {
    traverseNode(tp->root);
  }
}