Introduction to Java Programming and Data Structures, Comprehensive Version (11th Edition)
11th Edition
ISBN: 9780134670942
Author: Y. Daniel Liang
Publisher: PEARSON
expand_more
expand_more
format_list_bulleted
Question
Chapter 26.7, Problem 26.7.4CP
Program Plan Intro
AVL tree: It is a self-balancing binary search tree (BST). If the tree is not balanced, the tree performs rotation operation.
Expert Solution & Answer
Want to see the full answer?
Check out a sample textbook solutionStudents have asked these similar questions
3. void insert (Node newElement) or def insert(self, newElement) (4)
Pre-condition: None.
Post-condition: This method inserts newElement at the tail of the list. If an
element with the same key as newElement already exists in the list, then it
concludes the key already exists and does not insert the key.
implement this method:
numOccurrencesRec(LNode node, int n, int key) – This method takes as parameters a reference to the head of a linked list, a position specified by n, and a key. It returns the number of occurrences of the key in the linked list beginning at the n-th node. If n = 0, it means you should search in the entire linked list. If n = 1, then you should skip the first node in the list.
To identify all the nodes that are considered to be leaves, or the nodes that do not rely on any BNodes, you may create a new method and call it findTotalleaves (). The private method takes a BNode representing the current root as an argument, but the public one does not.
Chapter 26 Solutions
Introduction to Java Programming and Data Structures, Comprehensive Version (11th Edition)
Ch. 26.2 - Prob. 26.2.1CPCh. 26.2 - Prob. 26.2.2CPCh. 26.2 - Prob. 26.2.3CPCh. 26.3 - Prob. 26.3.1CPCh. 26.3 - Prob. 26.3.2CPCh. 26.3 - Prob. 26.3.3CPCh. 26.4 - Prob. 26.4.1CPCh. 26.4 - Prob. 26.4.2CPCh. 26.4 - Prob. 26.4.3CPCh. 26.4 - Prob. 26.4.4CP
Ch. 26.5 - Use Listing 26.2 as a template to describe the...Ch. 26.6 - Prob. 26.6.1CPCh. 26.6 - Prob. 26.6.2CPCh. 26.6 - Prob. 26.6.3CPCh. 26.6 - Prob. 26.6.4CPCh. 26.7 - Prob. 26.7.1CPCh. 26.7 - Prob. 26.7.2CPCh. 26.7 - Prob. 26.7.3CPCh. 26.7 - Prob. 26.7.4CPCh. 26.8 - Prob. 26.8.1CPCh. 26.8 - Prob. 26.8.2CPCh. 26.8 - Prob. 26.8.3CPCh. 26.9 - Prob. 26.9.1CPCh. 26.9 - Prob. 26.9.2CPCh. 26.9 - Prob. 26.9.3CPCh. 26 - Prob. 26.5PE
Knowledge Booster
Similar questions
- Task: Add a delete method and print the output in "in order traversal". Please add the new method in this code I made: .......... class BinarySearchTreeNode: def __init__(self, data): self.data = data self.left = None self.right = None def add_child(self, data): if data == self.data: return # node already exist if data < self.data: if self.left: self.left.add_child(data) else: self.left = BinarySearchTreeNode(data) else: if self.right: self.right.add_child(data) else: self.right = BinarySearchTreeNode(data) # function to build the BST def build_tree(elements): print("INPUT NUMBERS:", elements) root = BinarySearchTreeNode(elements[0]) for i in range(1, len(elements)): root.add_child(elements[i]) return root # function to find maximum value from the tree def getMaxFromBST(root): # storing value in temporary variable temp = root # looping over the right subtree while(temp.right): temp = temp.right # returning the rightmost leaf data return temp.data # function to find minimum…arrow_forwardIn a doubly linked list the first class is Node which we can create a new node with a given element. Its constructor also includes previous node reference prev and next node reference next. make a node object for the new element. Check if the index >= 0.If index is 0, make new node as head; else, make a temp node and iterate to the node previous to the index.If the previous node is not null, adjust the prev and next references. Print a message when the previous node is null. implement these 3 methods: insert_at_index(), delete_at_end(), display(). use these three functions above use this to name the items 1. insert_to_empty_list()2. insert_to_end()3. insert_at_index() 4. delete_at_start() 5. delete_at_end() . 6. display() let the output be OUTPUT: The list is emptyElement is: 3Element is: 10Element is: 20Element is: 30Element is: 35Element is: 38Element is: 40Element is: 50Element is: 60 Element is: 10Element is: 20Element is: 30Element is: 35Element is: 38Element is: 40Element…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
- Add 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 two codes below package DlinkedList; class Node<A,B,C> { private A stuID; private B stuName; private C stuScore; private Node<A,B,C> next; private Node <A,B,C> prev; public Node(A id, B name, C score) { stuID = id; stuName = name; stuScore = score; next = null; prev = null; } public A getStuID() { return stuID; } public B getStuName() { return stuName; } public C getStuScore() { return stuScore; } public Node<A,B,C> getNext(){ return next; } public Node<A,B,C>…arrow_forwardTo identify all the nodes that are considered to be leaves, or the nodes that do not rely on any BNodes, you may create a new method and call it find Totalleaves (). The private method takes a BNode representing the current root as an argument, but the public one does not.arrow_forwardplease follow instructions correctly. You are required to complete the LinkedList class. This class is used as a linked list that has many methods to perform operations on the linked list. To create a linked list, create an object of this class and use the addFirst or addLast or add(must be completed) to add nodes to this linked list. Your job is to complete the empty methods. For every method you have to complete, you are provided with a header, Do not modify those headers(method name, return type or parameters). You have to complete the body of the method. package chapter02; public class LinkedList { protected LLNode list; public LinkedList() { list = null; } public void addFirst(T info) { LLNode node = new LLNode(info); node.setLink(list); list = node; } public void addLast(T info) { LLNode curr = list; LLNode newNode = new LLNode(info); if(curr == null) { list = newNode; } else…arrow_forward
- / This method takes as parameters a reference to the head of a linked list, a // position specified by n, and a key. It returns the number of occurrences // of the key in the linked list beginning at the n-th node. If n = 0, it means // you should search in the entire linked list. If n = 1, then you should skip // the first node in the list. public int numOccurrencesRec(LNode node, int n, int key) { // TODO: implement this method return 0; // replace this statement with your own return } } LNode Below: public class LNode{ // instance variables private int m_info; private LNode m_link; // constructor public LNode(int info) { m_info = info; m_link = null; } // member methods public void setLink(LNode link) { m_link = link; } public LNode getLink() { return m_link; } public int getInfo() { return m_info; } }arrow_forwardThe following method will find the product of all integer values stored in a doubly link list, the însert a new node of this product at the end of the link list. Please fill the spaces. void fun1 () node*d,"p,"n; int product= 1; d = head while (d != NULL) product = product++ p = p-> next p=d; n=new node; n-> data = product v: p -> next =n n->next=NULL;arrow_forwardYou should create a method and call it findTotalleaves (); this method will find all of the nodes that are considered to be leaves, which are nodes that do not have any BNode dependents. The public function must not take any arguments, but the private method must accept as a parameter a BNode that represents the current root.arrow_forward
- Why do we have to free up a node that we no longer have access to?arrow_forwardpublic int insert(int value);/* Creates a node with the parameter as its value* and inserts the node into the tree in the appropriate position.* This method should call upon the recursive insert_r() helper method* you write.** we will make the assumption for this assignment (and implement it so) * that the values in a BST are unique... no duplicates** If we insert a value and it succeeded... adds it to the tree* return the element that was added** If we try to add an element and it is a duplicate, return the element* but make no changes to the tree... no new nodes added** @param int value to be inserted in tree* @return integer that was insrted after insertion is done.** Example 1: Suppose we have the tree below:** (27)* / \* (4) (29)* / \* (1) (8)* After calling insert(5), we'd obtain the following tree:** (27)* / \* (4) (29)* / \* (1) (8)* /* (5)** Example 2: Suppose we have the tree below:** (87)* / \* (42) (128)* \ \* (46) (145)* /* (44)** After calling insert(147), we'd obtain the…arrow_forwardWrite a Python code using the given function and conditions. Do not use Numpy. Use LinkedList Manipulation. Given function: def insert(self, newElement, index) Pre-condition: The list is not empty. Post-condition: This method inserts newElement at the given index of the list. If an element with the same key as newElement value already exists in the list, then it concludes the key already exists and does not insert the key. [You must also check the validity of the index].arrow_forward
arrow_back_ios
SEE MORE QUESTIONS
arrow_forward_ios
Recommended textbooks for you
- 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
Database System Concepts
Computer Science
ISBN:9780078022159
Author:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:McGraw-Hill Education
Starting Out with Python (4th Edition)
Computer Science
ISBN:9780134444321
Author:Tony Gaddis
Publisher:PEARSON
Digital Fundamentals (11th Edition)
Computer Science
ISBN:9780132737968
Author:Thomas L. Floyd
Publisher:PEARSON
C How to Program (8th Edition)
Computer Science
ISBN:9780133976892
Author:Paul J. Deitel, Harvey Deitel
Publisher:PEARSON
Database Systems: Design, Implementation, & Manag...
Computer Science
ISBN:9781337627900
Author:Carlos Coronel, Steven Morris
Publisher:Cengage Learning
Programmable Logic Controllers
Computer Science
ISBN:9780073373843
Author:Frank D. Petruzella
Publisher:McGraw-Hill Education