
Suppose a BST contains the integer values 1 through 15 and is a perfect binary tree.
a) Draw the tree.
b) Suppose we call the removeViaReplace method, with r equal to the root of the tree in Part a. List the numbers in child->value at the beginning of each iteration of the while loop in the code below. After that, redraw the tree upon completion of the removeViaReplace function.
c) Repeat Part b, but use the tree obtained at the end of Part b as the initial tree this time.
static void removeViaReplace(Node* r) {
Node* temp = r->right;
if (temp->left == nullptr) {
r->value = temp->value;
r->right = temp->right;
delete temp;
}
else {
Node* child = temp->left, * parent = temp;
while (child->left != nullptr) {
parent = child;
child = child->left;
}
r->value = child->value;
parent->left = child->right;
delete child;
}
}

Answer:
we have draw the Binary search tree as a perfect binary tree and also we have explain the function how it working
Step by stepSolved in 3 steps with 1 images

- Can somebody tell me the answer to this?arrow_forwardAdd more methods to the singly linked list class then test them• search(e) // Return one node with 3 values (stuID, stuName, stuScore) which matches agiven key e (studentID).• addAfter(e, stuID, stuName, stuScore) //Add a new node with 3 values (stuID,stuName, stuScore) after the node with the key e (studentID).• removeAt(e) //Remove a node which matches a given key e (studentID)• count() //Return a number of nodes of list.• update(stuID, stuName, stuScore) //Update the values of one node three codes below two in pictures one,typed out. public class SlinkedList<A,B,C> { private Node head; private Node tail; private int size; public SlinkedList(){ head=null; tail=null; size=0; } public int getSize(){ return size; } public boolean isEmpty(){ return size == 0; } public A getFirstStuId(){ if(isEmpty()) return null; return (A) head.getStuID();}public B getFirstStuName(){ if(isEmpty())…arrow_forwardAssume that the nodes of the singly linked lists are arranged in decreasing order of the exponents of the variable x in order to add the two polynomials.The objective is to create a fresh list of nodes that represents the addition of P1 and P2. This is done by adding the COEFF fields of nodes in lists P1 and P2 that have identical powers of variable x, and then making a new node in the resulting list P1 + P2. The key part of the technique is shown below.The start pointers of the singly linked lists that correspond to the polynomials P1 and P2 are P1 and P2, respectively. Two temporary pointers, PTR1 and PTR2, are created with starting values of P1 and P2, respectively. Make procedural code.arrow_forward
- Develop a procedure for removing duplicates from a linked list by comparing the keys of each node.arrow_forward8. Write down the insertBefore method which inserts a new element in the list before the node containing the given element. The method takes as parameters a dummy headed doubly linked circular list, the element existing in the list and new element to be added. public void insertBefore (Node head, Object elem, Object newElement) { //to do OR def insertBefore (head, elem, newElement): pass insertBefore (head, 3, 50) Sample Input Sample Output Ox21 2 223 240 O x21 2 22 50 ² 3 2 4 0arrow_forwardPlease use the alphabet shown in the screenshot below to code a Depth-first search (DFS) algorithm in C++.arrow_forward
- 8-Write a procedure that takes a tree (represented as a list) and returns a list whose elements are all the leaves of the tree arranged in right to left order or left to right. For example, ( leaves '((1 2) ((3 4) 5 )) returns (1 2 3 4 5) or (5 4 3 2 1). Then, Manually trace your procedure with the provided example.arrow_forwardAdd more methods to the doubly linked list class then test them• search(e) // Return one node with 3 values (stuID, stuName, stuScore) which matches agiven key e (studentID).• addAfter(e, stuID, stuName, stuScore) //Add a new node with 3 values (stuID,stuName, stuScore) after the node with the key e (studentID).• removeAt(e) //Remove a node which matches a given key e (studentID)• count() //Return a number of nodes of list.• update(stuID, stuName, stuScore) //Update the values of one node first code below package DlinkedList;public class DLinkedList<A,B,C> { private Node<A,B,C> header; private Node<A,B,C> trailer; private int size; public DLinkedList() { header = new Node<>(null, null, null); trailer = new Node<>(null, null, null); header.setNext(trailer); trailer.setPrev(header); } public int getSize() { return size; } public boolean isEmpty() { return size==0; } public A…arrow_forward
- Database System ConceptsComputer ScienceISBN:9780078022159Author:Abraham Silberschatz Professor, Henry F. Korth, S. SudarshanPublisher:McGraw-Hill EducationStarting Out with Python (4th Edition)Computer ScienceISBN:9780134444321Author:Tony GaddisPublisher:PEARSONDigital Fundamentals (11th Edition)Computer ScienceISBN:9780132737968Author:Thomas L. FloydPublisher:PEARSON
- C How to Program (8th Edition)Computer ScienceISBN:9780133976892Author:Paul J. Deitel, Harvey DeitelPublisher:PEARSONDatabase Systems: Design, Implementation, & Manag...Computer ScienceISBN:9781337627900Author:Carlos Coronel, Steven MorrisPublisher:Cengage LearningProgrammable Logic ControllersComputer ScienceISBN:9780073373843Author:Frank D. PetruzellaPublisher:McGraw-Hill Education





