DSA Unit 2 notes_part 2
DSA Unit 2 notes_part 2
Binary Search Tree is a binary tree data structure which has the
following properties:
The left subtree of a node contains only nodes with keys lesser than
the node’s key.
The right subtree of a node contains only nodes with keys greater
than the node’s key.
The left and right subtree each must also be a binary search tree.
2. In Binary tree the left subtree of a node contains values that are
smaller than the node’s value, and the right subtree contains values
that are larger. Due to this property, BSTs allow for efficient
searching by repeatedly dividing the search space in half, which
makes it an important data structure in computer science
1.Create
2.Insert
3.Delete
4.Search
Suppose the data elements are - 45, 15, 79, 90, 10, 55, 12, 20, 50
o First, we have to insert 45 into the tree as the root of the tree.
o Then, read the next element; if it is smaller than the root node, insert
it as the root of the left subtree, and move to the next element.
o Otherwise, if the element is larger than the root node, then insert it
as the root of the right subtree.
Now, let's see the process of creating the Binary search tree using the
given data element. The process of creating the BST is shown below -
As 15 is smaller than 45, so insert it as the root node of the left subtree.
As 79 is greater than 45, so insert it as the root node of the right subtree.
55 is larger than 45 and smaller than 79, so it will be inserted as the left
subtree of 79.
20 is smaller than 45 but greater than 15, so it will be inserted as the right
subtree of 15.
Step 9 - Insert 50.
50 is greater than 45 but smaller than 79 and 55. So, it will be inserted as
a left subtree of 55.
We can perform insert, delete and search operations on the binary search
tree.
1. If root is NULL,
Initialize root with temp
2. if temp->data< root->data
Call insert function and insert temp in left subtree
insert(root->left ,temp)
3. if temp->data> root->data
Call insert function and insert temp in right subtree
insert(root->right ,temp)
4. return root
Now, let's see the process of inserting a node into BST using an example.
Searching in Binary search tree
Search(root, target)
1. compare the element to be searched with the root element of the tree.
2. If root->data is matched with the target element, then return the root
3. If it is not matched, then check whether the item is less than the root
element, if it is smaller than the root element, then move to the left
subtree.
4. If it is larger than the root element, then move to the right subtree.
endwhile
5. If the element is not found then return NULL.
Step1:
Step2:
Step3:
Deletion in Binary Search tree
In a binary search tree, we must delete a node from the tree by keeping in
mind that the property of BST is not violated. To delete a node from BST,
there are three possible situations occur -
We can see the process to delete a leaf node from BST in the below image.
In below image, suppose we have to delete node 90, as the node to be
deleted is a leaf node, so it will be replaced with NULL, and the allocated
space will free.
In this case, we have to replace the target node with its child, and then
delete the child node. It means that after replacing the target node with its
child node, the child node will now contain the value to be deleted. So,
we simply have to replace the child node with NULL and free up the
allocated space.
We can see the process of deleting a node with one child from BST in the
below image. In the below image, suppose we have to delete the node 79,
as the node to be deleted has only one child, so it will be replaced with its
child 55.
So, the replaced node 79 will now be a leaf node that can be easily deleted.
This case of deleting a node in BST is a bit complex among other two
cases. In such a case, the steps to be followed are listed as follows -
The inorder successor is required when the right child of the node is not
empty. We can obtain the inorder successor by finding the minimum
element in the right child of the node.
We can see the process of deleting a node with two children from BST in
the below image. In the below image, suppose we have to delete node 45
that is the root node, as the node to be deleted has two children, so it will
be replaced with its inorder successor. Now, node 45 will be at the leaf of
the tree so that it can be deleted easily.
Now let's understand how insertion is performed on a binary search tree.
Delete( root, x)
5. Return root
Let's see the time complexity of the Binary search tree operations. We will
see the time complexity for insertion, deletion, and searching operations
in best case, average case, and worst case.
Time Complexity