13
Most read
15
Most read
16
Most read
introduction,
searching,
insertion and
deletion
Binary Search Trees (BST)
A data structure for efficient searching, insertion
and deletion
Binary search tree property
For every node X
All the keys in its left
subtree are smaller than
the key value in X
All the keys in its right
subtree are larger than the
key value in X
Binary Search Trees
A binary search tree Not a binary search tree
Binary Search Trees
Average depth of a node is O(log N)
Maximum depth of a node is O(N)
The same set of keys may have different BSTs
Searching BST
If we are searching for root (15), then we are done.
If we are searching for a key < root , then we
should search in the left subtree.
If we are searching for a key > root, then we should
search in the right subtree.
Data Structure and Algorithms Binary Search Tree
Searching (Find)
FIND(info, left, right, root, item, loc, par)- finds the item in tree T with root is root and
info, left and right is three array represented in memory. This algorithm returns loc
i.e. location of item and par i.e. parent.
1. [Tree Empty??]
if root==NULL, then set LOC=NULL & PAR=NULL and return.
1. [Item root ??]
If item==INFO[ROOT], then LOC=ROOT & PAR=NULL and return.
1. [Initialize pointer ptr and save]
If item<INFO[ROOT]
then set PTR = LEFT[ROOT] and SAVE=ROOT
Else
set PTR = RIGHT[ROOT] and SAVE=ROOT
[End of if]
1. Repeat 5 and 6 while ptr!=NULL
2. [item found??]
If ITEM=INFO[PTR], then set LOC=PTR and PAR=SAVE, and return.
1. If ITEM<INFO[PTR], then SAVE=PTR and PTR=LEFT[PTR]
Else
Set SAVE=PTR and PTR=RIGHT[PTR]
1. [Search unsuccessful] Set, LOC=NULL and PAR = SAVE
2. Exit
 Time complexity: O(height of the tree)
Sorting: Inorder Traversal of BST
Inorder Traversal of BST prints out all the keys in
sorted order
Inorder: 2, 3, 4, 6, 7, 9, 13, 15, 17, 18, 20
Insertion
Proceed down the tree as you would with a find
If X is found, do nothing (or update something)
Otherwise, insert X at the last spot on the path traversed
Time complexity = O(height of the tree)
Inserting (ADD node)INSBST(info, left, right, root, item, loc, avail)- insert the item in tree
T with root is root and info, left and right is three array
represented in memory. This algorithm returns loc i.e. location of
item or ADD item as new node in tree.
1. Call FIND(INFO, LEFT, RIGHT, ROOT, ITEM, LOC, PAR)
2. If LOC!=NULL, then Exit.
3. [Copy ITEM into new node in AVAIL list]
a) If AVAIL==NULL, Print “OVER FLOW”;
b) Set NEW=AVAIL, AVAIL=LEFT[AVAIL] and
INFO[NEW]=ITEM.
c) Set LOC=NEW,LEFT[NEW]=RIGHT[NEW]=NULL
4. [ADD ITEM to TREE]
If PAR=NULL then, Set ROOT=NEW.
Else IF ITEM<INFO[PAR] , Set LEFT[PAR]=NEW
Else Set RIGHT[PAR]=NEW
1. Exit
Time complexity: O(height of the tree)
Deletion
When we delete a node, we need to consider how we
take care of the children of the deleted node.
This has to be done such that the property of the
search tree is maintained.
Deletion under Different Cases
Case 1: the node is a leaf
Delete it immediately
Case 2: the node has one child
Adjust a pointer from the parent to bypass that node
Deletion Case 3
Case 3: the node has 2 children
Replace the key of that node with the minimum element
at the right subtree
Delete that minimum element
 Has either no child or only right child because if it has a left
child, that left child would be smaller and would have been
chosen. So invoke case 1 or 2.
 Time complexity = O(height of the tree)
Deletion Algorithm
DEL(INFO, LEFT, RIGHT, ROOT, AVAIL, ITEM)
A binary search tree T is in memory, and an ITEM of information is
given. This algorithm delete ITEM from the tree.
1. Call FIND(INFO, LEFT, RIGHT, ROOT, ITEM, LOC, PAR)
2. If LOC=NULL, then write ITEM not in tree and Exit
3. If RIGHT[LOC]!=NULL and LEFT[LOC]!=NULL, then:
Call CASEB(INFO, LEFT, RIGHT, ROOT, LOC, PAR)
Else:
Call CASEA(INFO, LEFT, RIGHT, ROOT, LOC, PAR)
4. Set LEFT[LOC]:=AVAIL and AVAIL :=LOC.
5. Exit
CASEA: only one or, no child
CASEA(INFO, LEFT, RIGHT, ROOT, LOC, PAR)-delete
the Node N at location LOC, where N doesn’t have two
Children. PAR is location of parent node or, PAR=NULL
i.e. ROOT node.
1. [initialize CHILD]
If LEFT[LOC]=NULL and RIGHT[LOC]=NULL, then
CHILD=NULL
Else if LEFT[LOC]!=NULL , then CHILD=LEFT[LOC]
Else CHILD=RIGHT[LOC]
1. If PAR != NULL then: (i.e. NOT A ROOT NODE)
If LOC=LEFT[PAR], then set LEFT[PAR]=CHILD
Else RIGHT[PAR]=CHILD
[End of IF]
Else set ROOT=CHILD.
[End of IF]
1. Exit
CASEB: has 2 children
 CASEB(INFO, LEFT, RIGHT, ROOT, LOC, PAR)-delete the Node N at location
LOC, where N has two Children. PAR is location of parent node or, PAR=NULL i.e.
ROOT node. SUC gives location of inorder successor and PARSUC gives location
of parent of inorder successor .
1. [Find SUC and PARSUC]
a) Set PTR=RIGHT[LOC] and SAVE=LOC
b) Repeat while LEFT[PTR]!=NULL
Set, SAVE=PTR and PTR=LEFT[PTR]
[END OF LOOP]
a) Set SUC=PTR and PARSUC=SAVE.
2. [Delete SUC] Call CASEA(INFO, LEFT, RIGHT, ROOT, SUC,PARSUC)
3. [replace node N by SUC]
a) If PAR != NULL then: (i.e. NOT A ROOT NODE)
If LOC=LEFT[PAR], then set LEFT[PAR]=SUC
Else RIGHT[PAR]=SUC
[End of IF]
Else set ROOT=SUC.
[End of IF]
b) Set, LEFT[SUC]=LEFT[LOC] and
RIGHT[SUC]=RIGHT[LOC]
4. Exit
Data Structure and Algorithms Binary Search Tree

More Related Content

PDF
Binary tree
PDF
Binary search tree operations
PPT
Binary tree
PPT
Binary search tree in data structures
PPTX
PPT
1.5 binary search tree
PPT
Binary search tree(bst)
PPTX
Binary search tree deletion
Binary tree
Binary search tree operations
Binary tree
Binary search tree in data structures
1.5 binary search tree
Binary search tree(bst)
Binary search tree deletion

What's hot (20)

PPTX
Binary Tree Traversal
PDF
Binary Search - Design & Analysis of Algorithms
PDF
Sorting Algorithms
PPTX
Tree in data structure
PPT
Queue data structure
PDF
Applications of stack
PPT
Data Structures- Part5 recursion
PPTX
Deque and its applications
PPTX
Linked list
PPTX
Priority Queue in Data Structure
PPT
List Data Structure
PPT
SEARCHING AND SORTING ALGORITHMS
PPT
Queue Data Structure
PDF
Double ended queue
PPTX
single linked list
PDF
Trees, Binary Search Tree, AVL Tree in Data Structures
PDF
Array data structure
PPTX
Data Structures (CS8391)
PPTX
Binary Search Tree in Data Structure
PPT
Queue AS an ADT (Abstract Data Type)
Binary Tree Traversal
Binary Search - Design & Analysis of Algorithms
Sorting Algorithms
Tree in data structure
Queue data structure
Applications of stack
Data Structures- Part5 recursion
Deque and its applications
Linked list
Priority Queue in Data Structure
List Data Structure
SEARCHING AND SORTING ALGORITHMS
Queue Data Structure
Double ended queue
single linked list
Trees, Binary Search Tree, AVL Tree in Data Structures
Array data structure
Data Structures (CS8391)
Binary Search Tree in Data Structure
Queue AS an ADT (Abstract Data Type)
Ad

Similar to Data Structure and Algorithms Binary Search Tree (20)

PPTX
8.binry search tree
PPTX
Lecture 9 data structures and algorithms
PPT
binary search tree
PDF
Chapter 7 - Binary Search Tree in the context of DSA.pdf
PDF
8 chapter4 trees_bst
PPT
358 33 powerpoint-slides_11-efficient-binary-trees_chapter-11
PPTX
Binary Search Tree
PPTX
BINARY SEARCH TREE.pptx all about trees how hey grow
PPTX
Binary Search Tree
PPTX
Binary search tree
PPTX
Binary Search Tree (BST)
PPTX
DOC-20220815-WA0027..pptx
PPTX
Binary Search Tree in Data Structure
PPT
Lecture 7-BinarySearchTrees.ppt
PPT
A Binary Search Tree (BST) is a binary tree where each node stores a key or v...
PPT
Binary search trees (1)
PPT
Chapter 9 ds
PPTX
Binary Search Tree.pptx
PPT
1.2 operations of tree representations
8.binry search tree
Lecture 9 data structures and algorithms
binary search tree
Chapter 7 - Binary Search Tree in the context of DSA.pdf
8 chapter4 trees_bst
358 33 powerpoint-slides_11-efficient-binary-trees_chapter-11
Binary Search Tree
BINARY SEARCH TREE.pptx all about trees how hey grow
Binary Search Tree
Binary search tree
Binary Search Tree (BST)
DOC-20220815-WA0027..pptx
Binary Search Tree in Data Structure
Lecture 7-BinarySearchTrees.ppt
A Binary Search Tree (BST) is a binary tree where each node stores a key or v...
Binary search trees (1)
Chapter 9 ds
Binary Search Tree.pptx
1.2 operations of tree representations
Ad

More from ManishPrajapati78 (15)

PPT
Data Structure and Algorithms Binary Tree
PPT
Data Structure and Algorithms Queues
PPTX
Data Structure and Algorithms Merge Sort
PPTX
Data Structure and Algorithms The Tower of Hanoi
PPT
Data Structure and Algorithms Stacks
PPT
Data Structure and Algorithms Linked List
PPT
Data Structure and Algorithms Sorting
PPT
Data Structure and Algorithms Arrays
PPT
Data Structure and Algorithms
PPT
Data Structure and Algorithms Hashing
PPTX
Data Structure and Algorithms Graph Traversal
PPT
Data Structure and Algorithms Graphs
PPT
Data Structure and Algorithms Huffman Coding Algorithm
PPT
Data Structure and Algorithms Heaps and Trees
PPT
Data Structure and Algorithms AVL Trees
Data Structure and Algorithms Binary Tree
Data Structure and Algorithms Queues
Data Structure and Algorithms Merge Sort
Data Structure and Algorithms The Tower of Hanoi
Data Structure and Algorithms Stacks
Data Structure and Algorithms Linked List
Data Structure and Algorithms Sorting
Data Structure and Algorithms Arrays
Data Structure and Algorithms
Data Structure and Algorithms Hashing
Data Structure and Algorithms Graph Traversal
Data Structure and Algorithms Graphs
Data Structure and Algorithms Huffman Coding Algorithm
Data Structure and Algorithms Heaps and Trees
Data Structure and Algorithms AVL Trees

Recently uploaded (20)

PDF
Practical Indispensable Project Management Tips for Delivering Successful Exp...
PPTX
Chapter 1 - Transaction Processing and Mgt.pptx
PPTX
ROI Analysis for Newspaper Industry with Odoo ERP
PPTX
Python is a high-level, interpreted programming language
PPTX
Human-Computer Interaction for Lecture 2
PDF
Internet Download Manager IDM Crack powerful download accelerator New Version...
PPTX
hospital managemt ,san.dckldnklcdnkdnkdnjadnjdjn
PDF
E-Commerce Website Development Companyin india
PPTX
Presentation by Samna Perveen And Subhan Afzal.pptx
PDF
CCleaner 6.39.11548 Crack 2025 License Key
PPTX
MLforCyber_MLDataSetsandFeatures_Presentation.pptx
PDF
Website Design & Development_ Professional Web Design Services.pdf
DOCX
Modern SharePoint Intranet Templates That Boost Employee Engagement in 2025.docx
PDF
novaPDF Pro 11.9.482 Crack + License Key [Latest 2025]
DOC
UTEP毕业证学历认证,宾夕法尼亚克拉里恩大学毕业证未毕业
PDF
AI-Powered Fuzz Testing: The Future of QA
PPTX
ROI from Efficient Content & Campaign Management in the Digital Media Industry
PDF
What Makes a Great Data Visualization Consulting Service.pdf
PDF
BoxLang Dynamic AWS Lambda - Japan Edition
PPTX
Full-Stack Developer Courses That Actually Land You Jobs
Practical Indispensable Project Management Tips for Delivering Successful Exp...
Chapter 1 - Transaction Processing and Mgt.pptx
ROI Analysis for Newspaper Industry with Odoo ERP
Python is a high-level, interpreted programming language
Human-Computer Interaction for Lecture 2
Internet Download Manager IDM Crack powerful download accelerator New Version...
hospital managemt ,san.dckldnklcdnkdnkdnjadnjdjn
E-Commerce Website Development Companyin india
Presentation by Samna Perveen And Subhan Afzal.pptx
CCleaner 6.39.11548 Crack 2025 License Key
MLforCyber_MLDataSetsandFeatures_Presentation.pptx
Website Design & Development_ Professional Web Design Services.pdf
Modern SharePoint Intranet Templates That Boost Employee Engagement in 2025.docx
novaPDF Pro 11.9.482 Crack + License Key [Latest 2025]
UTEP毕业证学历认证,宾夕法尼亚克拉里恩大学毕业证未毕业
AI-Powered Fuzz Testing: The Future of QA
ROI from Efficient Content & Campaign Management in the Digital Media Industry
What Makes a Great Data Visualization Consulting Service.pdf
BoxLang Dynamic AWS Lambda - Japan Edition
Full-Stack Developer Courses That Actually Land You Jobs

Data Structure and Algorithms Binary Search Tree

  • 2. Binary Search Trees (BST) A data structure for efficient searching, insertion and deletion Binary search tree property For every node X All the keys in its left subtree are smaller than the key value in X All the keys in its right subtree are larger than the key value in X
  • 3. Binary Search Trees A binary search tree Not a binary search tree
  • 4. Binary Search Trees Average depth of a node is O(log N) Maximum depth of a node is O(N) The same set of keys may have different BSTs
  • 5. Searching BST If we are searching for root (15), then we are done. If we are searching for a key < root , then we should search in the left subtree. If we are searching for a key > root, then we should search in the right subtree.
  • 7. Searching (Find) FIND(info, left, right, root, item, loc, par)- finds the item in tree T with root is root and info, left and right is three array represented in memory. This algorithm returns loc i.e. location of item and par i.e. parent. 1. [Tree Empty??] if root==NULL, then set LOC=NULL & PAR=NULL and return. 1. [Item root ??] If item==INFO[ROOT], then LOC=ROOT & PAR=NULL and return. 1. [Initialize pointer ptr and save] If item<INFO[ROOT] then set PTR = LEFT[ROOT] and SAVE=ROOT Else set PTR = RIGHT[ROOT] and SAVE=ROOT [End of if] 1. Repeat 5 and 6 while ptr!=NULL 2. [item found??] If ITEM=INFO[PTR], then set LOC=PTR and PAR=SAVE, and return. 1. If ITEM<INFO[PTR], then SAVE=PTR and PTR=LEFT[PTR] Else Set SAVE=PTR and PTR=RIGHT[PTR] 1. [Search unsuccessful] Set, LOC=NULL and PAR = SAVE 2. Exit  Time complexity: O(height of the tree)
  • 8. Sorting: Inorder Traversal of BST Inorder Traversal of BST prints out all the keys in sorted order Inorder: 2, 3, 4, 6, 7, 9, 13, 15, 17, 18, 20
  • 9. Insertion Proceed down the tree as you would with a find If X is found, do nothing (or update something) Otherwise, insert X at the last spot on the path traversed Time complexity = O(height of the tree)
  • 10. Inserting (ADD node)INSBST(info, left, right, root, item, loc, avail)- insert the item in tree T with root is root and info, left and right is three array represented in memory. This algorithm returns loc i.e. location of item or ADD item as new node in tree. 1. Call FIND(INFO, LEFT, RIGHT, ROOT, ITEM, LOC, PAR) 2. If LOC!=NULL, then Exit. 3. [Copy ITEM into new node in AVAIL list] a) If AVAIL==NULL, Print “OVER FLOW”; b) Set NEW=AVAIL, AVAIL=LEFT[AVAIL] and INFO[NEW]=ITEM. c) Set LOC=NEW,LEFT[NEW]=RIGHT[NEW]=NULL 4. [ADD ITEM to TREE] If PAR=NULL then, Set ROOT=NEW. Else IF ITEM<INFO[PAR] , Set LEFT[PAR]=NEW Else Set RIGHT[PAR]=NEW 1. Exit Time complexity: O(height of the tree)
  • 11. Deletion When we delete a node, we need to consider how we take care of the children of the deleted node. This has to be done such that the property of the search tree is maintained.
  • 12. Deletion under Different Cases Case 1: the node is a leaf Delete it immediately Case 2: the node has one child Adjust a pointer from the parent to bypass that node
  • 13. Deletion Case 3 Case 3: the node has 2 children Replace the key of that node with the minimum element at the right subtree Delete that minimum element  Has either no child or only right child because if it has a left child, that left child would be smaller and would have been chosen. So invoke case 1 or 2.  Time complexity = O(height of the tree)
  • 14. Deletion Algorithm DEL(INFO, LEFT, RIGHT, ROOT, AVAIL, ITEM) A binary search tree T is in memory, and an ITEM of information is given. This algorithm delete ITEM from the tree. 1. Call FIND(INFO, LEFT, RIGHT, ROOT, ITEM, LOC, PAR) 2. If LOC=NULL, then write ITEM not in tree and Exit 3. If RIGHT[LOC]!=NULL and LEFT[LOC]!=NULL, then: Call CASEB(INFO, LEFT, RIGHT, ROOT, LOC, PAR) Else: Call CASEA(INFO, LEFT, RIGHT, ROOT, LOC, PAR) 4. Set LEFT[LOC]:=AVAIL and AVAIL :=LOC. 5. Exit
  • 15. CASEA: only one or, no child CASEA(INFO, LEFT, RIGHT, ROOT, LOC, PAR)-delete the Node N at location LOC, where N doesn’t have two Children. PAR is location of parent node or, PAR=NULL i.e. ROOT node. 1. [initialize CHILD] If LEFT[LOC]=NULL and RIGHT[LOC]=NULL, then CHILD=NULL Else if LEFT[LOC]!=NULL , then CHILD=LEFT[LOC] Else CHILD=RIGHT[LOC] 1. If PAR != NULL then: (i.e. NOT A ROOT NODE) If LOC=LEFT[PAR], then set LEFT[PAR]=CHILD Else RIGHT[PAR]=CHILD [End of IF] Else set ROOT=CHILD. [End of IF] 1. Exit
  • 16. CASEB: has 2 children  CASEB(INFO, LEFT, RIGHT, ROOT, LOC, PAR)-delete the Node N at location LOC, where N has two Children. PAR is location of parent node or, PAR=NULL i.e. ROOT node. SUC gives location of inorder successor and PARSUC gives location of parent of inorder successor . 1. [Find SUC and PARSUC] a) Set PTR=RIGHT[LOC] and SAVE=LOC b) Repeat while LEFT[PTR]!=NULL Set, SAVE=PTR and PTR=LEFT[PTR] [END OF LOOP] a) Set SUC=PTR and PARSUC=SAVE. 2. [Delete SUC] Call CASEA(INFO, LEFT, RIGHT, ROOT, SUC,PARSUC) 3. [replace node N by SUC] a) If PAR != NULL then: (i.e. NOT A ROOT NODE) If LOC=LEFT[PAR], then set LEFT[PAR]=SUC Else RIGHT[PAR]=SUC [End of IF] Else set ROOT=SUC. [End of IF] b) Set, LEFT[SUC]=LEFT[LOC] and RIGHT[SUC]=RIGHT[LOC] 4. Exit