Download - BST Numbers, Memory, Removal & Tree Maps. BST Numbers n = number values contained h = height
![Page 1: BST Numbers, Memory, Removal & Tree Maps. BST Numbers n = number values contained h = height](https://reader036.vdocument.in/reader036/viewer/2022062503/5a4d1acb7f8b9ab05996f958/html5/thumbnails/1.jpg)
BST Numbers, Memory, Removal & Tree Maps
![Page 2: BST Numbers, Memory, Removal & Tree Maps. BST Numbers n = number values contained h = height](https://reader036.vdocument.in/reader036/viewer/2022062503/5a4d1acb7f8b9ab05996f958/html5/thumbnails/2.jpg)
BST Numbers
Ideal binary tree:• Leaf nodes dominate :
max number leaves =
• Height directly related to n:n = 2(h+1) – 1
• Height = Height related to log of tree size
n = number values containedh = height
![Page 3: BST Numbers, Memory, Removal & Tree Maps. BST Numbers n = number values contained h = height](https://reader036.vdocument.in/reader036/viewer/2022062503/5a4d1acb7f8b9ab05996f958/html5/thumbnails/3.jpg)
BST Numbers
Ideal binary tree:• Leaf nodes dominate :
max number leaves =
• Height directly related to n:n = 2(h+1) – 1
• Height = Height related to log of tree sizeAlgorithm that descends one path doing constant work at each node is O(logn)
n = number values containedh = height
![Page 4: BST Numbers, Memory, Removal & Tree Maps. BST Numbers n = number values contained h = height](https://reader036.vdocument.in/reader036/viewer/2022062503/5a4d1acb7f8b9ab05996f958/html5/thumbnails/4.jpg)
BST Memory
• BST manages memory…– Destructor– Copy/Assignment
![Page 5: BST Numbers, Memory, Removal & Tree Maps. BST Numbers n = number values contained h = height](https://reader036.vdocument.in/reader036/viewer/2022062503/5a4d1acb7f8b9ab05996f958/html5/thumbnails/5.jpg)
BST DeleteDestructor
deleteSubtree at root
deleteSubtree(node)deleteSubtree on childrendelete node
![Page 6: BST Numbers, Memory, Removal & Tree Maps. BST Numbers n = number values contained h = height](https://reader036.vdocument.in/reader036/viewer/2022062503/5a4d1acb7f8b9ab05996f958/html5/thumbnails/6.jpg)
BST CopyBSTNode* copySubtree(BSTNode* currentNode)
If currentNode is nullptrreturn nullptr
BSTNode* newNode = new BSTNode(currentNode->value)newNode->left = copySubtree(currentNode->left) newNode->right= copySubtree(currentNode->right)return newNode
![Page 7: BST Numbers, Memory, Removal & Tree Maps. BST Numbers n = number values contained h = height](https://reader036.vdocument.in/reader036/viewer/2022062503/5a4d1acb7f8b9ab05996f958/html5/thumbnails/7.jpg)
BST CopyBSTNode* copySubtree(BSTNode* currentNode)
If currentNode is nullptrreturn nullptr
BSTNode* newNode = new BSTNode(currentNode->value)newNode->left = copySubtree(currentNode->left) newNode->right= copySubtree(currentNode->right)return newNode
![Page 8: BST Numbers, Memory, Removal & Tree Maps. BST Numbers n = number values contained h = height](https://reader036.vdocument.in/reader036/viewer/2022062503/5a4d1acb7f8b9ab05996f958/html5/thumbnails/8.jpg)
BSTNode* copySubtree(BSTNode* currentNode)If currentNode is nullptr
return nullptrBSTNode* newNode = new BSTNode(currentNode->value)newNode->left = copySubtree(currentNode->left) newNode->right= copySubtree(currentNode->right)return newNode
BST Copy
![Page 9: BST Numbers, Memory, Removal & Tree Maps. BST Numbers n = number values contained h = height](https://reader036.vdocument.in/reader036/viewer/2022062503/5a4d1acb7f8b9ab05996f958/html5/thumbnails/9.jpg)
BSTNode* copySubtree(BSTNode* currentNode)If currentNode is nullptr
return nullptrBSTNode* newNode = new BSTNode(currentNode->value)newNode->left = copySubtree(currentNode->left) newNode->right= copySubtree(currentNode->right)return newNode
BST Copy
![Page 10: BST Numbers, Memory, Removal & Tree Maps. BST Numbers n = number values contained h = height](https://reader036.vdocument.in/reader036/viewer/2022062503/5a4d1acb7f8b9ab05996f958/html5/thumbnails/10.jpg)
BSTNode* copySubtree(BSTNode* currentNode)If currentNode is nullptr
return nullptrBSTNode* newNode = new BSTNode(currentNode->value)newNode->left = copySubtree(currentNode->left) newNode->right= copySubtree(currentNode->right)return newNode
BST Copy
![Page 11: BST Numbers, Memory, Removal & Tree Maps. BST Numbers n = number values contained h = height](https://reader036.vdocument.in/reader036/viewer/2022062503/5a4d1acb7f8b9ab05996f958/html5/thumbnails/11.jpg)
BSTNode* copySubtree(BSTNode* currentNode)If currentNode is nullptr
return nullptrBSTNode* newNode = new BSTNode(currentNode->value)newNode->left = copySubtree(currentNode->left) newNode->right= copySubtree(currentNode->right)return newNode
BST Copy
![Page 12: BST Numbers, Memory, Removal & Tree Maps. BST Numbers n = number values contained h = height](https://reader036.vdocument.in/reader036/viewer/2022062503/5a4d1acb7f8b9ab05996f958/html5/thumbnails/12.jpg)
BSTNode* copySubtree(BSTNode* currentNode)If currentNode is nullptr
return nullptrBSTNode* newNode = new BSTNode(currentNode->value)newNode->left = copySubtree(currentNode->left) newNode->right= copySubtree(currentNode->right)return newNode
BST Copy
![Page 13: BST Numbers, Memory, Removal & Tree Maps. BST Numbers n = number values contained h = height](https://reader036.vdocument.in/reader036/viewer/2022062503/5a4d1acb7f8b9ab05996f958/html5/thumbnails/13.jpg)
BSTNode* copySubtree(BSTNode* currentNode)If currentNode is nullptr
return nullptrBSTNode* newNode = new BSTNode(currentNode->value)newNode->left = copySubtree(currentNode->left) newNode->right= copySubtree(currentNode->right)return newNode
BST Copy
![Page 14: BST Numbers, Memory, Removal & Tree Maps. BST Numbers n = number values contained h = height](https://reader036.vdocument.in/reader036/viewer/2022062503/5a4d1acb7f8b9ab05996f958/html5/thumbnails/14.jpg)
BSTNode* copySubtree(BSTNode* currentNode)If currentNode is nullptr
return nullptrBSTNode* newNode = new BSTNode(currentNode->value)newNode->left = copySubtree(currentNode->left) newNode->right= copySubtree(currentNode->right)return newNode
BST Copy
![Page 15: BST Numbers, Memory, Removal & Tree Maps. BST Numbers n = number values contained h = height](https://reader036.vdocument.in/reader036/viewer/2022062503/5a4d1acb7f8b9ab05996f958/html5/thumbnails/15.jpg)
BSTNode* copySubtree(BSTNode* currentNode)If currentNode is nullptr
return nullptrBSTNode* newNode = new BSTNode(currentNode->value)newNode->left = copySubtree(currentNode->left) newNode->right= copySubtree(currentNode->right)return newNode
BST Copy
![Page 16: BST Numbers, Memory, Removal & Tree Maps. BST Numbers n = number values contained h = height](https://reader036.vdocument.in/reader036/viewer/2022062503/5a4d1acb7f8b9ab05996f958/html5/thumbnails/16.jpg)
BSTNode* copySubtree(BSTNode* currentNode)If currentNode is nullptr
return nullptrBSTNode* newNode = new BSTNode(currentNode->value)newNode->left = copySubtree(currentNode->left) newNode->right= copySubtree(currentNode->right)return newNode
BST Copy
![Page 17: BST Numbers, Memory, Removal & Tree Maps. BST Numbers n = number values contained h = height](https://reader036.vdocument.in/reader036/viewer/2022062503/5a4d1acb7f8b9ab05996f958/html5/thumbnails/17.jpg)
BST Memory
• Duplicate
• Copy Constror Assignment Operator
![Page 18: BST Numbers, Memory, Removal & Tree Maps. BST Numbers n = number values contained h = height](https://reader036.vdocument.in/reader036/viewer/2022062503/5a4d1acb7f8b9ab05996f958/html5/thumbnails/18.jpg)
BST Removal
• Case 1: No children
![Page 19: BST Numbers, Memory, Removal & Tree Maps. BST Numbers n = number values contained h = height](https://reader036.vdocument.in/reader036/viewer/2022062503/5a4d1acb7f8b9ab05996f958/html5/thumbnails/19.jpg)
BST Removal
• Case 1: No children
• Prune from parent and delete
![Page 20: BST Numbers, Memory, Removal & Tree Maps. BST Numbers n = number values contained h = height](https://reader036.vdocument.in/reader036/viewer/2022062503/5a4d1acb7f8b9ab05996f958/html5/thumbnails/20.jpg)
BST Removal
• Case 2: One child
![Page 21: BST Numbers, Memory, Removal & Tree Maps. BST Numbers n = number values contained h = height](https://reader036.vdocument.in/reader036/viewer/2022062503/5a4d1acb7f8b9ab05996f958/html5/thumbnails/21.jpg)
BST Removal
• Case 2: One child
• Hook parent to the one child
![Page 22: BST Numbers, Memory, Removal & Tree Maps. BST Numbers n = number values contained h = height](https://reader036.vdocument.in/reader036/viewer/2022062503/5a4d1acb7f8b9ab05996f958/html5/thumbnails/22.jpg)
BST Removal
• Case 3: Two Children
![Page 23: BST Numbers, Memory, Removal & Tree Maps. BST Numbers n = number values contained h = height](https://reader036.vdocument.in/reader036/viewer/2022062503/5a4d1acb7f8b9ab05996f958/html5/thumbnails/23.jpg)
BST Removal
• Case 3: Two Children
• Identify replacement (smallest on right)
![Page 24: BST Numbers, Memory, Removal & Tree Maps. BST Numbers n = number values contained h = height](https://reader036.vdocument.in/reader036/viewer/2022062503/5a4d1acb7f8b9ab05996f958/html5/thumbnails/24.jpg)
BST Removal
• Case 3: Two Children
• Move value to node being replaced
![Page 25: BST Numbers, Memory, Removal & Tree Maps. BST Numbers n = number values contained h = height](https://reader036.vdocument.in/reader036/viewer/2022062503/5a4d1acb7f8b9ab05996f958/html5/thumbnails/25.jpg)
• Case 3: Two Children
• Remove smallest on right
BST Removal
![Page 26: BST Numbers, Memory, Removal & Tree Maps. BST Numbers n = number values contained h = height](https://reader036.vdocument.in/reader036/viewer/2022062503/5a4d1acb7f8b9ab05996f958/html5/thumbnails/26.jpg)
• Recursive Remove:
How It Works
![Page 27: BST Numbers, Memory, Removal & Tree Maps. BST Numbers n = number values contained h = height](https://reader036.vdocument.in/reader036/viewer/2022062503/5a4d1acb7f8b9ab05996f958/html5/thumbnails/27.jpg)
• SmallestValue( startNode )– Return value of leftmost
child of startNode
Helpers
![Page 28: BST Numbers, Memory, Removal & Tree Maps. BST Numbers n = number values contained h = height](https://reader036.vdocument.in/reader036/viewer/2022062503/5a4d1acb7f8b9ab05996f958/html5/thumbnails/28.jpg)
• RemoveSmallestNode( startNode )– Return pointer to
subtree with leftmostnode removed
Helpers