Question
(50 extra pts) Pruning BSTs : write a method/function that prunes a BST by deleting nodes with key values out of a given range [min,
(50 extra pts) Pruning BSTs: write a method/function that prunes a BST by deleting nodes with key values out of a given range [min, max]. Since actual deletions of nodes from BST is expensive (O(h) time for BSTs of height h) and also some applications might require fast recovery of deleted nodes, we will just put deletion marks on those nodes instead of actually deleting them. There are two types of marks we can use to mark nodes: (1) type-I marks indicating that the marked nodes are unavailable (deleted); and (2) type-II marks indicating that all nodes in the subtree rooted at the marked nodes are unavailable (deleted). There is an O(h)-time algorithm that places no more than O(h) marks (type-I and type-II combined) in a BST of height h in order to indicate that all nodes with key values outside a given range [min, max] are unavailable. So to receive full credit for this item, the algorithm entailed by your program should has the same properties, i.e., runs in O(h) time and marks no more than O(h) nodes. One possible application of such an algorithm is that in implementing a shopping website, we might need to use BSTs to store results of a search and facilitate fast refinement of the search results, i.e., tablets within a price range.
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started