Computer Science, asked by deepsahil1295, 7 months ago

Write a C program for implementing binary search algorithm. How many key comparisons will be made

for searching for the keys 10 and 37 in the following list inserted in the binary search tree?

2, 5, 10, 20, 25, 30, 40, 50​

Answers

Answered by rushilansari
1

Answer:

// C program to demonstrate insert operation in binary search tree.  

#include<stdio.h>  

#include<stdlib.h>  

   

struct node  

{  

   int key;  

   struct node *left, *right;  

};  

   

// A utility function to create a new BST node  

struct node *newNode(int item)  

{  

   struct node *temp =  (struct node *)malloc(sizeof(struct node));  

   temp->key = item;  

   temp->left = temp->right = NULL;  

   return temp;  

}  

   

// A utility function to do inorder traversal of BST  

void inorder(struct node *root)  

{  

   if (root != NULL)  

   {  

       inorder(root->left);  

       printf("%d \n", root->key);  

       inorder(root->right);  

   }  

}  

   

/* A utility function to insert a new node with given key in BST */

struct node* insert(struct node* node, int key)  

{  

   /* If the tree is empty, return a new node */

   if (node == NULL) return newNode(key);  

 

   /* Otherwise, recur down the tree */

   if (key < node->key)  

       node->left  = insert(node->left, key);  

   else if (key > node->key)  

       node->right = insert(node->right, key);    

 

   /* return the (unchanged) node pointer */

   return node;  

}  

   

// Driver Program to test above functions  

int main()  

{  

   /* Let us create following BST  

             50  

          /     \  

         30      70  

        /  \    /  \  

      20   40  60   80 */

   struct node *root = NULL;  

   root = insert(root, 50);  

   insert(root, 30);  

   insert(root, 20);  

   insert(root, 40);  

   insert(root, 70);  

   insert(root, 60);  

   insert(root, 80);  

   

   // print inoder traversal of the BST  

   inorder(root);  

   

   return 0;  

}  

OUTPUT:

20

30

40

50

60

70

80

Similar questions