SlideShare a Scribd company logo
Binary Trees,Binary Search Trees
Trees Linear access time of linked lists is prohibitive Does there exist any simple data structure for which the running time of most operations (search, insert, delete) is O(log N)?
Trees A tree is a collection of nodes The collection can be empty (recursive definition) If not empty, a tree consists of a distinguished node r (the root), and zero or more nonempty subtrees T1, T2, ...., Tk, each of whose roots are connected by a directed edge from r
Some Terminologies Child and parent Every node except the root has one parent  A node can have an arbitrary number of children Leaves Nodes with no children  Sibling nodes with same parent
Some Terminologies Path Length number of edges on the path Depthof a node length of the unique path from the root to that node The depth of a tree is equal to the depth of the deepest leaf Height of a node length of the longest path from that node to a leaf all leaves are at height 0 The height of a tree is equal to the height of the root Ancestor and descendant Proper ancestor and proper descendant
Example: UNIX Directory
Binary Trees A tree in which no node can have more than two children The depth of an “average” binary tree is considerably smaller than N, eventhough in the worst case, the depth can be as large as N – 1.
Example: Expression Trees Leaves are operands (constants or variables) The other nodes (internal nodes) contain operators Will not be a binary tree if some operators are not binary
Tree traversal Used to print out the data in a tree in a certain order Pre-order traversal Print the data at the root Recursively print out all data in the left subtree Recursively print out all data in the right subtree
Preorder, Postorder and Inorder Preorder traversal node, left, right prefix expression ++a*bc*+*defg
Preorder, Postorder and Inorder Postorder traversal left, right, node postfix expression abc*+de*f+g*+ Inorder traversal left, node, right. infix expression a+b*c+d*e+f*g
Preorder
Postorder
Preorder, Postorder and Inorder
Binary Trees Possible operations on the Binary Tree ADT parent left_child, right_child sibling root, etc Implementation Because a binary tree has at most two children, we can keep direct pointers to them
compare: Implementation of a general tree
Binary Search Trees Stores keys in the nodes in a way so that searching, insertion and deletion can be done efficiently. Binary search tree property For every node X, all the keys in its left subtree are smaller than the key value in X, and 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) Two binary search trees representing  the same set:
Implementation
Searching BST If we are searching for 15, then we are done. If we are searching for a key < 15, then we should search in the left subtree. If we are searching for a key > 15, then we should search in the right subtree.
Searching (Find) Find X: return a pointer to the node that has key X, or NULL if there is no such node Time complexity O(height of the tree)
Inorder traversal of BST Print out all the keys in sorted order Inorder: 2, 3, 4, 6, 7, 9, 13, 15, 17, 18, 20
findMin/ findMax Return the node containing the smallest element in the tree Start at the root and go left as long as there is a left child. The stopping point is the smallest element Similarly for findMax Time complexity = O(height of the tree)
insert 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)
delete 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.
delete Three cases: (1) the node is a leaf Delete it immediately (2) the node has one child Adjust a pointer from the parent to bypass that node
delete (3) the node has 2 children replace the key of that node with the minimum element at the right subtree  delete the 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)
AVL-Trees
Balanced binary tree The disadvantage of a binary search tree is that its height can be as large as N-1 This means that the time needed to perform insertion and deletion and many other operations can be O(N) in the worst case We want a tree with small height A binary tree with N node has height at least(log N)  Thus, our goal is to keep the height of a binary search tree O(log N) Such trees are called balanced binary search trees.  Examples are AVL tree, red-black tree.
AVL tree Height of a node The height of a leaf is 1.  The height of a null pointer is zero. The height of an internal node is the maximum height of its children plus 1 Note that this definition of height is different from the one we defined previously (we defined the height of a leaf as zero previously).
AVL tree An AVL tree is a binary search tree in which for every node in the tree, the height of the left and right subtrees differ by at most 1. AVL property violated here
AVL tree Let x be the root of an AVL tree of height h Let Nh denote the minimum number of nodes in an AVL tree of height h Clearly, Ni≥ Ni-1 by definition We have By repeated substitution, we obtain the general form The boundary conditions are: N1=1 and N2 =2. This implies that h = O(log Nh). Thus, many operations (searching, insertion, deletion) on an AVL tree will take O(log N) time.
Rotations When the tree structure changes (e.g., insertion or deletion), we need to transform the tree to restore the AVL tree property. This is done using single rotations or double rotations. y x A C B e.g. Single Rotation x y C B A After Rotation Before Rotation
Rotations Since an insertion/deletion involves adding/deleting a single node, this can only increase/decrease the height of some subtree by 1 Thus, if the AVL tree property is violated at a node x, it means that the heights of left(x) ad right(x) differ by exactly 2. Rotations will be applied to x to restore the AVL tree property.
Insertion First, insert the new key as a new leaf just as in ordinary binary search tree Then trace the path from the new leaf towards the root.  For each node x encountered, check if heights of left(x) and right(x) differ by at most 1. If yes, proceed to parent(x).  If not, restructure by doing either a single rotation or a double rotation [next slide]. For insertion, once we perform a rotation at a node x, we won’t need to perform any rotation at any ancestor of x.
Insertion  Let x be the node at which left(x) and right(x) differ by more than 1 Assume that the height of x is h+3 There are 4 cases Height of left(x) is h+2 (i.e. height of right(x) is h) Height of left(left(x)) is h+1  single rotate with left child Height of right(left(x)) is h+1  double rotate with left child Height of right(x) is h+2 (i.e. height of left(x) is h) Height of right(right(x)) is h+1  single rotate with right child Height of left(right(x)) is h+1  double rotate with right child Note: Our test conditions for the 4 cases are different from the code shown in the textbook.  These conditions allow a uniform treatment between insertion and deletion.
Single rotation The new key is inserted in the subtree A.  The AVL-property is violated at x  height of left(x) is h+2  height of right(x) is h.
Single rotation The new key is inserted in the subtree C.  The AVL-property is violated at x. Single rotation takes O(1) time. Insertion takes O(log N) time.
3 1 4 4 8 1 0.8 3 5 5 8 3 4 1 x  AVL Tree 5 C y 8 B A 0.8 Insert 0.8 After rotation
Double rotation The new key is inserted in the subtree B1 or B2.  The AVL-property is violated at x. x-y-z forms a zig-zag shape also called left-right rotate
Double rotation The new key is inserted in the subtree B1 or B2.  The AVL-property is violated at x. also called right-left rotate
x C y 3 A z 4 3.5 8 1 4 3.5 B 5 5 8 3 3 4 1 5  AVL Tree 8 Insert 3.5 After Rotation 1
An Extended Example 3 3 2 2 2 4 4 2 2 1 1 1 3 3 Fig 1 3 3 5 Fig 4 Fig 2 Fig 3 1 Fig 5 Fig 6 Insert 3,2,1,4,5,6,7, 16,15,14 Single rotation Single rotation
2 2 4 4 4 Fig 8 Fig 7 5 5 6 6 7 3 3 7 3 1 1 2 2 2 4 4 5 5 6 6 Fig 10 Fig 9 5 Fig 11 3 3 1 1 1 Single rotation Single rotation
4 4 4 7 7 15 3 16 3 16 3 16 2 2 2 Fig 12 Fig 13 15 6 6 6 5 7 Fig 14 5 5 1 1 1 Double rotation
4 4 6 14 15 16 15 3 3 16 14 2 2 Fig 15 Fig 16 7 6 5 7 5 1 1 Double rotation

More Related Content

What's hot

B tree
B treeB tree
B tree
Tech_MX
 
1.5 binary search tree
1.5 binary search tree1.5 binary search tree
1.5 binary search tree
Krish_ver2
 
Binary search tree operations
Binary search tree operationsBinary search tree operations
Binary search tree operations
Kamran Zafar
 
Binary Heap Tree, Data Structure
Binary Heap Tree, Data Structure Binary Heap Tree, Data Structure
Binary Heap Tree, Data Structure
Anand Ingle
 
Graph representation
Graph representationGraph representation
Graph representation
Tech_MX
 
BINARY SEARCH TREE
BINARY SEARCH TREEBINARY SEARCH TREE
BINARY SEARCH TREE
ER Punit Jain
 
sorting and its types
sorting and its typessorting and its types
sorting and its types
SIVASHANKARIRAJAN
 
Trees (data structure)
Trees (data structure)Trees (data structure)
Trees (data structure)
Trupti Agrawal
 
BinarySearchTree-bddicken
BinarySearchTree-bddickenBinarySearchTree-bddicken
BinarySearchTree-bddicken
Benjamin Dicken
 
Binary Search Tree
Binary Search TreeBinary Search Tree
Binary Search Tree
sagar yadav
 
trees in data structure
trees in data structure trees in data structure
trees in data structure
shameen khan
 
Trees data structure
Trees data structureTrees data structure
Trees data structure
Sumit Gupta
 
Red black tree
Red black treeRed black tree
Red black tree
Rajendran
 
Tree - Data Structure
Tree - Data StructureTree - Data Structure
Tree - Data Structure
Ashim Lamichhane
 
Tree traversal techniques
Tree traversal techniquesTree traversal techniques
Tree traversal techniques
Syed Zaid Irshad
 
Data structure - Graph
Data structure - GraphData structure - Graph
Data structure - Graph
Madhu Bala
 
AVL Tree
AVL TreeAVL Tree
Data Structure (Queue)
Data Structure (Queue)Data Structure (Queue)
Data Structure (Queue)
Adam Mukharil Bachtiar
 
Binary tree traversal ppt - 02.03.2020
Binary tree traversal   ppt - 02.03.2020Binary tree traversal   ppt - 02.03.2020
Binary tree traversal ppt - 02.03.2020
V.V.Vanniapermal College for Women
 
Deque and its applications
Deque and its applicationsDeque and its applications
Deque and its applications
Jsaddam Hussain
 

What's hot (20)

B tree
B treeB tree
B tree
 
1.5 binary search tree
1.5 binary search tree1.5 binary search tree
1.5 binary search tree
 
Binary search tree operations
Binary search tree operationsBinary search tree operations
Binary search tree operations
 
Binary Heap Tree, Data Structure
Binary Heap Tree, Data Structure Binary Heap Tree, Data Structure
Binary Heap Tree, Data Structure
 
Graph representation
Graph representationGraph representation
Graph representation
 
BINARY SEARCH TREE
BINARY SEARCH TREEBINARY SEARCH TREE
BINARY SEARCH TREE
 
sorting and its types
sorting and its typessorting and its types
sorting and its types
 
Trees (data structure)
Trees (data structure)Trees (data structure)
Trees (data structure)
 
BinarySearchTree-bddicken
BinarySearchTree-bddickenBinarySearchTree-bddicken
BinarySearchTree-bddicken
 
Binary Search Tree
Binary Search TreeBinary Search Tree
Binary Search Tree
 
trees in data structure
trees in data structure trees in data structure
trees in data structure
 
Trees data structure
Trees data structureTrees data structure
Trees data structure
 
Red black tree
Red black treeRed black tree
Red black tree
 
Tree - Data Structure
Tree - Data StructureTree - Data Structure
Tree - Data Structure
 
Tree traversal techniques
Tree traversal techniquesTree traversal techniques
Tree traversal techniques
 
Data structure - Graph
Data structure - GraphData structure - Graph
Data structure - Graph
 
AVL Tree
AVL TreeAVL Tree
AVL Tree
 
Data Structure (Queue)
Data Structure (Queue)Data Structure (Queue)
Data Structure (Queue)
 
Binary tree traversal ppt - 02.03.2020
Binary tree traversal   ppt - 02.03.2020Binary tree traversal   ppt - 02.03.2020
Binary tree traversal ppt - 02.03.2020
 
Deque and its applications
Deque and its applicationsDeque and its applications
Deque and its applications
 

Viewers also liked

Op-Amp Fundamental
Op-Amp FundamentalOp-Amp Fundamental
Op-Amp Fundamental
Gaensan
 
Introduction to group theory
Introduction to group theoryIntroduction to group theory
Introduction to group theory
St.Marys Chemistry Department
 
Data structures
Data structuresData structures
Data structures
Saurabh Mishra
 
Operational Amplifier Part 1
Operational Amplifier Part 1Operational Amplifier Part 1
Operational Amplifier Part 1
Mukesh Tekwani
 
Data Structure
Data StructureData Structure
Data Structure
Karthikeyan A K
 
DATA STRUCTURES
DATA STRUCTURESDATA STRUCTURES
DATA STRUCTURES
bca2010
 

Viewers also liked (6)

Op-Amp Fundamental
Op-Amp FundamentalOp-Amp Fundamental
Op-Amp Fundamental
 
Introduction to group theory
Introduction to group theoryIntroduction to group theory
Introduction to group theory
 
Data structures
Data structuresData structures
Data structures
 
Operational Amplifier Part 1
Operational Amplifier Part 1Operational Amplifier Part 1
Operational Amplifier Part 1
 
Data Structure
Data StructureData Structure
Data Structure
 
DATA STRUCTURES
DATA STRUCTURESDATA STRUCTURES
DATA STRUCTURES
 

Similar to Binary trees1

data structures module III & IV.pptx
data structures module III & IV.pptxdata structures module III & IV.pptx
data structures module III & IV.pptx
rani marri
 
Review session2
Review session2Review session2
Review session2
NEEDY12345
 
lecture 13
lecture 13lecture 13
lecture 13
sajinsc
 
Red Black Trees
Red Black TreesRed Black Trees
Red Black Trees
Varun Mahajan
 
Skiena algorithm 2007 lecture05 dictionary data structure trees
Skiena algorithm 2007 lecture05 dictionary data structure treesSkiena algorithm 2007 lecture05 dictionary data structure trees
Skiena algorithm 2007 lecture05 dictionary data structure trees
zukun
 
Binary Search Tree
Binary Search TreeBinary Search Tree
Binary Search Tree
AdityaK92
 
Trees
TreesTrees
Binary Search Tree
Binary Search TreeBinary Search Tree
Binary Search Tree
Zafar Ayub
 
Data structures and Algorithm analysis_Lecture4.pptx
Data structures and Algorithm analysis_Lecture4.pptxData structures and Algorithm analysis_Lecture4.pptx
Data structures and Algorithm analysis_Lecture4.pptx
AhmedEldesoky24
 
Cinterviews Binarysearch Tree
Cinterviews Binarysearch TreeCinterviews Binarysearch Tree
Cinterviews Binarysearch Tree
cinterviews
 
Trees in data structure
Trees in data structureTrees in data structure
Trees in data structure
Anusruti Mitra
 
7 chapter4 trees_binary
7 chapter4 trees_binary7 chapter4 trees_binary
7 chapter4 trees_binary
SSE_AndyLi
 
CS-102 BST_27_3_14.pdf
CS-102 BST_27_3_14.pdfCS-102 BST_27_3_14.pdf
CS-102 BST_27_3_14.pdf
ssuser034ce1
 
CS-102 BST_27_3_14v2.pdf
CS-102 BST_27_3_14v2.pdfCS-102 BST_27_3_14v2.pdf
CS-102 BST_27_3_14v2.pdf
ssuser034ce1
 
mitochondria moment and super computer integration.ppt
mitochondria moment and super computer integration.pptmitochondria moment and super computer integration.ppt
mitochondria moment and super computer integration.ppt
AMMAD45
 
Tree.pptx
Tree.pptxTree.pptx
Tree.pptx
worldchannel
 
bst.ppt
bst.pptbst.ppt
bst.ppt
plagcheck
 
Balance tree. Short overview
Balance tree. Short overviewBalance tree. Short overview
Balance tree. Short overview
ElifTech
 
BST.pdf
BST.pdfBST.pdf
part4-trees.ppt
part4-trees.pptpart4-trees.ppt
part4-trees.ppt
Suneel61
 

Similar to Binary trees1 (20)

data structures module III & IV.pptx
data structures module III & IV.pptxdata structures module III & IV.pptx
data structures module III & IV.pptx
 
Review session2
Review session2Review session2
Review session2
 
lecture 13
lecture 13lecture 13
lecture 13
 
Red Black Trees
Red Black TreesRed Black Trees
Red Black Trees
 
Skiena algorithm 2007 lecture05 dictionary data structure trees
Skiena algorithm 2007 lecture05 dictionary data structure treesSkiena algorithm 2007 lecture05 dictionary data structure trees
Skiena algorithm 2007 lecture05 dictionary data structure trees
 
Binary Search Tree
Binary Search TreeBinary Search Tree
Binary Search Tree
 
Trees
TreesTrees
Trees
 
Binary Search Tree
Binary Search TreeBinary Search Tree
Binary Search Tree
 
Data structures and Algorithm analysis_Lecture4.pptx
Data structures and Algorithm analysis_Lecture4.pptxData structures and Algorithm analysis_Lecture4.pptx
Data structures and Algorithm analysis_Lecture4.pptx
 
Cinterviews Binarysearch Tree
Cinterviews Binarysearch TreeCinterviews Binarysearch Tree
Cinterviews Binarysearch Tree
 
Trees in data structure
Trees in data structureTrees in data structure
Trees in data structure
 
7 chapter4 trees_binary
7 chapter4 trees_binary7 chapter4 trees_binary
7 chapter4 trees_binary
 
CS-102 BST_27_3_14.pdf
CS-102 BST_27_3_14.pdfCS-102 BST_27_3_14.pdf
CS-102 BST_27_3_14.pdf
 
CS-102 BST_27_3_14v2.pdf
CS-102 BST_27_3_14v2.pdfCS-102 BST_27_3_14v2.pdf
CS-102 BST_27_3_14v2.pdf
 
mitochondria moment and super computer integration.ppt
mitochondria moment and super computer integration.pptmitochondria moment and super computer integration.ppt
mitochondria moment and super computer integration.ppt
 
Tree.pptx
Tree.pptxTree.pptx
Tree.pptx
 
bst.ppt
bst.pptbst.ppt
bst.ppt
 
Balance tree. Short overview
Balance tree. Short overviewBalance tree. Short overview
Balance tree. Short overview
 
BST.pdf
BST.pdfBST.pdf
BST.pdf
 
part4-trees.ppt
part4-trees.pptpart4-trees.ppt
part4-trees.ppt
 

More from Saurabh Mishra

Sorting2
Sorting2Sorting2
Sorting2
Saurabh Mishra
 
Sorting
SortingSorting
Searching
SearchingSearching
Searching
Saurabh Mishra
 
Presentation1
Presentation1Presentation1
Presentation1
Saurabh Mishra
 
Graps 2
Graps 2Graps 2
Graphs
GraphsGraphs
Trees
TreesTrees

More from Saurabh Mishra (7)

Sorting2
Sorting2Sorting2
Sorting2
 
Sorting
SortingSorting
Sorting
 
Searching
SearchingSearching
Searching
 
Presentation1
Presentation1Presentation1
Presentation1
 
Graps 2
Graps 2Graps 2
Graps 2
 
Graphs
GraphsGraphs
Graphs
 
Trees
TreesTrees
Trees
 

Recently uploaded

Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Albert Hoitingh
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
Neo4j
 
How to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For FlutterHow to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For Flutter
Daiki Mogmet Ito
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
sonjaschweigert1
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
Adtran
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
Octavian Nadolu
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
Uni Systems S.M.S.A.
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Malak Abu Hammad
 
Full-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalizationFull-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalization
Zilliz
 
Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...
Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...
Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...
Zilliz
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
Neo4j
 
Large Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial ApplicationsLarge Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial Applications
Rohit Gautam
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
Neo4j
 
“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”
Claudio Di Ciccio
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
danishmna97
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
Aftab Hussain
 
Presentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of GermanyPresentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of Germany
innovationoecd
 
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Speck&Tech
 
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
shyamraj55
 
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
Edge AI and Vision Alliance
 

Recently uploaded (20)

Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
 
How to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For FlutterHow to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For Flutter
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
 
Full-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalizationFull-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalization
 
Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...
Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...
Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
 
Large Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial ApplicationsLarge Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial Applications
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
 
“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
 
Presentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of GermanyPresentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of Germany
 
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
 
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
 
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
 

Binary trees1

  • 2. Trees Linear access time of linked lists is prohibitive Does there exist any simple data structure for which the running time of most operations (search, insert, delete) is O(log N)?
  • 3. Trees A tree is a collection of nodes The collection can be empty (recursive definition) If not empty, a tree consists of a distinguished node r (the root), and zero or more nonempty subtrees T1, T2, ...., Tk, each of whose roots are connected by a directed edge from r
  • 4. Some Terminologies Child and parent Every node except the root has one parent  A node can have an arbitrary number of children Leaves Nodes with no children Sibling nodes with same parent
  • 5. Some Terminologies Path Length number of edges on the path Depthof a node length of the unique path from the root to that node The depth of a tree is equal to the depth of the deepest leaf Height of a node length of the longest path from that node to a leaf all leaves are at height 0 The height of a tree is equal to the height of the root Ancestor and descendant Proper ancestor and proper descendant
  • 7. Binary Trees A tree in which no node can have more than two children The depth of an “average” binary tree is considerably smaller than N, eventhough in the worst case, the depth can be as large as N – 1.
  • 8. Example: Expression Trees Leaves are operands (constants or variables) The other nodes (internal nodes) contain operators Will not be a binary tree if some operators are not binary
  • 9. Tree traversal Used to print out the data in a tree in a certain order Pre-order traversal Print the data at the root Recursively print out all data in the left subtree Recursively print out all data in the right subtree
  • 10. Preorder, Postorder and Inorder Preorder traversal node, left, right prefix expression ++a*bc*+*defg
  • 11. Preorder, Postorder and Inorder Postorder traversal left, right, node postfix expression abc*+de*f+g*+ Inorder traversal left, node, right. infix expression a+b*c+d*e+f*g
  • 15. Binary Trees Possible operations on the Binary Tree ADT parent left_child, right_child sibling root, etc Implementation Because a binary tree has at most two children, we can keep direct pointers to them
  • 16. compare: Implementation of a general tree
  • 17. Binary Search Trees Stores keys in the nodes in a way so that searching, insertion and deletion can be done efficiently. Binary search tree property For every node X, all the keys in its left subtree are smaller than the key value in X, and all the keys in its right subtree are larger than the key value in X
  • 18. Binary Search Trees A binary search tree Not a binary search tree
  • 19. Binary search trees Average depth of a node is O(log N); maximum depth of a node is O(N) Two binary search trees representing the same set:
  • 21. Searching BST If we are searching for 15, then we are done. If we are searching for a key < 15, then we should search in the left subtree. If we are searching for a key > 15, then we should search in the right subtree.
  • 22.
  • 23. Searching (Find) Find X: return a pointer to the node that has key X, or NULL if there is no such node Time complexity O(height of the tree)
  • 24. Inorder traversal of BST Print out all the keys in sorted order Inorder: 2, 3, 4, 6, 7, 9, 13, 15, 17, 18, 20
  • 25. findMin/ findMax Return the node containing the smallest element in the tree Start at the root and go left as long as there is a left child. The stopping point is the smallest element Similarly for findMax Time complexity = O(height of the tree)
  • 26. insert 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)
  • 27. delete 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.
  • 28. delete Three cases: (1) the node is a leaf Delete it immediately (2) the node has one child Adjust a pointer from the parent to bypass that node
  • 29. delete (3) the node has 2 children replace the key of that node with the minimum element at the right subtree delete the 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)
  • 31. Balanced binary tree The disadvantage of a binary search tree is that its height can be as large as N-1 This means that the time needed to perform insertion and deletion and many other operations can be O(N) in the worst case We want a tree with small height A binary tree with N node has height at least(log N) Thus, our goal is to keep the height of a binary search tree O(log N) Such trees are called balanced binary search trees. Examples are AVL tree, red-black tree.
  • 32. AVL tree Height of a node The height of a leaf is 1. The height of a null pointer is zero. The height of an internal node is the maximum height of its children plus 1 Note that this definition of height is different from the one we defined previously (we defined the height of a leaf as zero previously).
  • 33. AVL tree An AVL tree is a binary search tree in which for every node in the tree, the height of the left and right subtrees differ by at most 1. AVL property violated here
  • 34. AVL tree Let x be the root of an AVL tree of height h Let Nh denote the minimum number of nodes in an AVL tree of height h Clearly, Ni≥ Ni-1 by definition We have By repeated substitution, we obtain the general form The boundary conditions are: N1=1 and N2 =2. This implies that h = O(log Nh). Thus, many operations (searching, insertion, deletion) on an AVL tree will take O(log N) time.
  • 35. Rotations When the tree structure changes (e.g., insertion or deletion), we need to transform the tree to restore the AVL tree property. This is done using single rotations or double rotations. y x A C B e.g. Single Rotation x y C B A After Rotation Before Rotation
  • 36. Rotations Since an insertion/deletion involves adding/deleting a single node, this can only increase/decrease the height of some subtree by 1 Thus, if the AVL tree property is violated at a node x, it means that the heights of left(x) ad right(x) differ by exactly 2. Rotations will be applied to x to restore the AVL tree property.
  • 37. Insertion First, insert the new key as a new leaf just as in ordinary binary search tree Then trace the path from the new leaf towards the root. For each node x encountered, check if heights of left(x) and right(x) differ by at most 1. If yes, proceed to parent(x). If not, restructure by doing either a single rotation or a double rotation [next slide]. For insertion, once we perform a rotation at a node x, we won’t need to perform any rotation at any ancestor of x.
  • 38. Insertion Let x be the node at which left(x) and right(x) differ by more than 1 Assume that the height of x is h+3 There are 4 cases Height of left(x) is h+2 (i.e. height of right(x) is h) Height of left(left(x)) is h+1  single rotate with left child Height of right(left(x)) is h+1  double rotate with left child Height of right(x) is h+2 (i.e. height of left(x) is h) Height of right(right(x)) is h+1  single rotate with right child Height of left(right(x)) is h+1  double rotate with right child Note: Our test conditions for the 4 cases are different from the code shown in the textbook. These conditions allow a uniform treatment between insertion and deletion.
  • 39. Single rotation The new key is inserted in the subtree A. The AVL-property is violated at x height of left(x) is h+2 height of right(x) is h.
  • 40. Single rotation The new key is inserted in the subtree C. The AVL-property is violated at x. Single rotation takes O(1) time. Insertion takes O(log N) time.
  • 41. 3 1 4 4 8 1 0.8 3 5 5 8 3 4 1 x AVL Tree 5 C y 8 B A 0.8 Insert 0.8 After rotation
  • 42. Double rotation The new key is inserted in the subtree B1 or B2. The AVL-property is violated at x. x-y-z forms a zig-zag shape also called left-right rotate
  • 43. Double rotation The new key is inserted in the subtree B1 or B2. The AVL-property is violated at x. also called right-left rotate
  • 44. x C y 3 A z 4 3.5 8 1 4 3.5 B 5 5 8 3 3 4 1 5 AVL Tree 8 Insert 3.5 After Rotation 1
  • 45. An Extended Example 3 3 2 2 2 4 4 2 2 1 1 1 3 3 Fig 1 3 3 5 Fig 4 Fig 2 Fig 3 1 Fig 5 Fig 6 Insert 3,2,1,4,5,6,7, 16,15,14 Single rotation Single rotation
  • 46. 2 2 4 4 4 Fig 8 Fig 7 5 5 6 6 7 3 3 7 3 1 1 2 2 2 4 4 5 5 6 6 Fig 10 Fig 9 5 Fig 11 3 3 1 1 1 Single rotation Single rotation
  • 47. 4 4 4 7 7 15 3 16 3 16 3 16 2 2 2 Fig 12 Fig 13 15 6 6 6 5 7 Fig 14 5 5 1 1 1 Double rotation
  • 48. 4 4 6 14 15 16 15 3 3 16 14 2 2 Fig 15 Fig 16 7 6 5 7 5 1 1 Double rotation