/* Title: Binary Tree
*  Author: Ben Miller
*  This is a program that creates a binary tree and then displays it in three orders.
*  PreOrder: Visit the root, Traverse left subtree, Traverse right subtree
*  InOrder: Traverse left subtree, Visit the root, Traverse right subtree
*  PostOrder: Traverse left subtree, Traverse right subtree, Visit the root
*  This is my first binary tree program done in cs38.
*  4-18-99
*/

#include <stdio.h>
#include "tree_binary_lib.c"

int main (int argc, char *argv[])
{
	FILE *infile1;
	char add_file[MAX], remove_file[MAX];
	int tree_number;
	TreeNode *root;
	
	check_command_line(argc, argv, add_file, remove_file);

	root = initialize_tree();
	
	/* open add file */
	if ((infile1 = fopen(add_file, "r")) == NULL) {
		printf("Error opening file: %s.\n", add_file);
		exit(1);
	}

	while (fscanf(infile1, "%d", &tree_number) != EOF) {
		if (root->data == -1) {
			root->data = tree_number;
		} else
			add_node(tree_number, root);
	}

	printf("Dislaying tree in PreOrder:\n");
	preorder_display(root);
	
	printf("Displaying tree in InOrder:\n");
	inorder_display(root);
	
	printf("Displaying tree in PostOrder:\n");
	postorder_display(root);
	
	/* close files */
	fclose(infile1);

	exit(1);	
}
