Binary Search Tree Program in C
Searching in Binary Search Tree in C
Here, in this page we will discuss searching in binary search tree in C. A binary search tree is a tree in which the data in left sub-tree is less than the root and the data in right sub-tree is greater than the root.Given a Binary Search tree and a key, check whether the key is present in the tree or not.
Algorithm :
- If tree is empty return.
- Check whether key is greater or smaller than root.
- If greater, move to the right subtree. Otherwise move to the left subtree.
- If Key is found return true.
Code in C for Searching in Binary Search Tree
Run
#include <stdio.h> #include <stdlib.h> #include <stdbool.h> struct node { int data; struct node *left; struct node *right; }; struct node *newNode (int data) { struct node *node = (struct node *) malloc (sizeof (struct node)); node->data = data; node->left = NULL; node->right = NULL; return (node); } bool check_element (struct node * root, int key) { // If root is null, element is not found:Backtrack if (root == NULL) { return false; } // Check whether same or not if (root->data == key) { return true; } if (root->data > key) { // Traverse the left subtree return check_element (root->left, key); } // Else Traverse the right subtree else { return check_element (root->right, key); } } int main () { struct node *root = newNode (80); root->left = newNode (60); root->right = newNode (90); root->left->left = newNode (40); root->left->right = newNode (70); root->left->left->left = newNode (30); root->left->left->right = newNode (50); if (check_element (root, 50)) { printf ("Found\n"); } else { printf ("Not Found\n"); } return 0; }
Output :
Found
Login/Signup to comment