/* This is just the seaching function you need to write the required code.
Thank you. */
void searchNode(Node *root, int data)
{
if(root == NULL)
{
cout << "Tree is empty\n";
return;
}
queue<Node*> q;
q.push(root);
while(!q.empty())
{
Node *temp = q.front();
q.pop();
if(temp->data == data)
{
cout << "Node found\n";
return;
}
if(temp->left != NULL)
q.push(temp->left);
if(temp->right != NULL)
q.push(temp->right);
}
cout << "Node not found\n";
}
Posted by: Guest
on June-07-2020
0
Searching in Binary Search Tree
public class BinarySearchTree {
public class Node {
//instance variable of Node class
public int data;
public Node left;
public Node right;
//constructor
public Node(int data) {
this.data = data;
this.left = null;
this.right = null;
}
}
// instance variable
public Node root;
// constructor for initialise the root to null BYDEFAULT
public BinarySearchTree() {
this.root = null;
}
// insert method to insert the new Date
public void insert(int newData) {
this.root = insert(root, newData);
}
public Node insert(Node root, int newData) {
// Base Case: root is null or not
if (root == null) {
// Insert the new data, if root is null.
root = new Node(newData);
// return the current root to his sub tree
return root;
}
// Here checking for root data is greater or equal to newData or not
else if (root.data >= newData) {
// if current root data is greater than the new data then now process the left sub-tree
root.left = insert(root.left, newData);
} else {
// if current root data is less than the new data then now process the right sub-tree
root.right = insert(root.right, newData);
}
return root;
}
// method for search the data , is data is present or not in the tree ?
public boolean search(int data) {
return search(this.root, data);
}
private boolean search(Node root, int data) {
if (root == null) {
return false;
} else if (root.data == data) {
return true;
} else if (root.data > data) {
return search(root.left, data);
}
return search(root.right, data);
}
//Traversal
public void preorder() {
preorder(root);
System.out.println();
}
public void preorder(Node root) {
if (root == null) {
return;
}
System.out.print(root.data + " ");
preorder(root.left);
preorder(root.right);
}
public static void main(String[] args) {
// Creating the object of BinarySearchTree class
BinarySearchTree bst = new BinarySearchTree();
// call the method insert
bst.insert(8);
bst.insert(5);
bst.insert(9);
bst.insert(3);
bst.insert(7);
bst.preorder();
System.out.println(bst.search(7));
}
}
Forgot your account's password or having trouble logging into your Account? Don't worry, we'll help you to get back your account. Enter your email address and we'll send you a recovery link to reset your password. If you are experiencing problems
resetting your password contact us
Check Your Email and Click on the link sent to your email