#include "tree.h" /* Reads a sequence of numbers from input file to create a * list of numbers. After that takes input from the keyboard * for different operations. */ int main(int argc, char *argv[]) { Tree T; int number; char op; // create empty tree T = NULL; if (argc > 2) { // wrong command printf("Command format: list []\n"); return 0; } if (argc == 2) { // input file is provided FILE *fp; int n, m; fp = fopen(argv[1], "r"); // open the file if (fp == NULL) { // file does not exist printf("Input file does not exist!\n"); return 0; } fscanf(fp, "%d", &n); // number of numbers in file for (int i = 0; i < n; i++) { // read n numbers fscanf(fp, "%d", &m); // read a number T = insert_tree(m, T, NULL); } fclose(fp); } // Now read input from keyboard printf("Please input operations\n"); while (1) { // run indefinitely scanf(" %c", & op); // read the next operation if (op == 'e') // exit return 1; else if (op == 'p') { // print the list printf("The current tree is:\n"); print_tree(T); printf("\n"); } else if (op == 's') { // search for a number scanf("%d", &number); if (search_tree(number, T) != NULL) // number found printf("Number exists in the tree\n"); else printf("Number does not exist in the tree\n"); } else if (op == 'i') { // insert a number scanf("%d", &number); T = insert_tree(number, T, NULL); } else { // delete a number scanf("%d", &number); T = delete_tree(number, T); } } }