//Creates a BST with minimum height bst* createMinBST(int a[], int start, int end) { if(start > end) return NULL; int middle = (start+end)/2; bst* r = create_node(middle); r->left = createMinBST(a, start, middle - 1); r->right = createMinBST(a, middle + 1, end); return r; }
bst *createMinBST(int a[],int start,int end)//Creating BST with minimum level { if (start > end) return NULL; int mid=(start+end)/2; bst *root = create_node(a[mid]); root->left=createMinBST(a,start,mid-1); root->right=createMinBST(a,mid+1,end); return root; }
int main(int argc, char **argv) { //Checking error if (argc < 2) { printf("usage: %s <input_filename>\n", argv[0]); return 0; } //Open file FILE *in = fopen(argv[1], "r"); if (in == NULL) return 0; //Declaration of variable int i, size,level; //Scanning size from file fscanf(in, "%d", &size); //allocating memory for array int *array = malloc(size * sizeof(int)); //Scanning number from the file for (i=0; i<size; i++) fscanf(in, "%d", &array[i]); //Declaring a node bst *root =NULL; //Creating BST root=createBST(array,size); //print in-order,pre-order,post-order tree traversal printf("Creating Binary Search Tree...\n"); printf("In-order traversal: "); printInorder(root); printf("\n"); printf("Pre-order traversal: "); printPreorder(root); printf("\n"); printf("Post-order traversal: "); printPostorder(root); printf("\n"); //Sort arrat sort(array,size); //Creatin binary tree with minimum level root=createMinBST(array,0,size-1); //printing BST printf("Minimum Height BST\n"); printTree(root); //Bonus printf("Bonus.Please enter level of the tree:"); scanf("%d",&level); if(level>height(root)) printf("\nThe maximum height of this tree is %d",height(root)); else printGivenLevel(root,level); return 0; }
int main(int argc, char *argv[]){ //check command line arguments if(argc != 2){ printf("usage: ./a.out <input_filename>"); exit(0); } //open the file FILE* input = fopen(argv[1],"r"); if(input == NULL){ printf("File not found"); exit(0); } bst* root = NULL; int i = 0; int size = 0; fscanf(input,"%d",&size); int *a = (int *)malloc(sizeof(int)*size);//create the array for(i=0;i<size;i++){ fscanf(input,"%d",&a[i]); } close(input); //close file //printout the different ways printf("Creating Binary Search Tree\n"); root = createBST(a,size); printf("In-Order traversal: "); printInorder(root); printf("\nPre-Order traversal: "); printPreorder(root); printf("\nPost-Order traversal: "); printPostorder(root); printf("\n\nMinimum Height BST\n"); sort(a,size); root = createMinBST(a,0,size-1); printTree(root); free(a); //free mem return 0; }
int main(int argc, char **argv) { if(argc < 2) { printf("usage: %s <input_filename>/n", argv[0]); return; } FILE* input = fopen(argv[1], "r"); if (input == NULL) return; int i, size; fscanf(input, "%d", &size); int array[size]; for(i=0; i<size; i++) fscanf(input, "%d", &array[i]); //Creates Binary Tree printf("Creating Binary Tree...\n"); bst* root = createBST(array, size); //Printing Inorder Traversal printf("Inorder Traversal: "); printInorder(root); printf("\n"); //Printing Pre-order Traversal printf("Pre-Order Traversal: "); printPreorder(root); printf("\n"); //Printing Postorder Traversal printf("Postorder Traversal: "); printPostorder(root); printf("\n"); //Printing the Binary Tree printf("\nMinimum Height BST\n"); sort(array, size); root = createMinBST(array, array[0], array[size-1]); printTree(root); fclose(input); free(root); return 0; }