Question
Consider a binary search tree where each tree node v has a field v.sum which stores the sum of all the keys in the subtree
Consider a binary search tree where each tree node v has a field v.sum which stores the sum of all the keys in the subtree rooted at v.
(a) Modify the Insert operation (given below) to insert an element so that all the .sum fields of the tree are correct after applying the Insert operation. (Assume that all the .sum fields were correct before the Insert operation.) Your modified algorithm should take the same time as the original Insert operation. Explain your modification and give pseudo-code for the modified algorithm.
function Insert(T,z)
y <-- LocateParent(T,z)
z.parent <-- y
if (y = NIL) then T.root <-- z ;
else if (z.key< y.key) then y.left <-- z
else y.right <-- z
(b) Argue for the correctness of your algorithm. Explain why all the .sum fields are correct after running your modified Insert operation.
(c) Analyze the running time of your modified algorithm in terms of the size n and the height h of the binary search tree.
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