Implement avl trees that allows both iterative traversal

Assignment Help JAVA Programming
Reference no: EM13346846

Implement AVL trees that allows both iterative traversal and recursive traversal.

Iterative traversal is fairly easy if null left and right values in nodes are replaced by references to other nodes. A neighbor link is a link from a tree node to an inorder predecessor or successor that is not a descendant of the node. Note that if a node has a left child, the inorder predecessor will be that child or the rightmost descendant of that child (and thus a descendant of the node). By symmetry, if a node has a right child, the node's inorder successor will be that child or the leftmost descendant of that child.

So in a binary search tree with neighbor links, every link field that does not point to another node contains a neighbor link to the node's inorder predecessor (if it's a left link) or inorder successor (if it's a right link). The left link field of the node with no inorder predecessor contains a null neighbor link, as does the right link field of the node with no inorder successor.

Your AVL class

Define a class AVLTree with a private inner class AVLNode to represent tree nodes using neighbor links where appropriate. Your class to be parametrized as in the Weiss text. However your AVLTree is to have instance variables for the tree size and for a comparison counter, as well as for the root.

Your AVLNode class is to have six instance fields representing the node's data value, its two children, flags for each subtree, and the height of the tree rooted at the node.

Your AVLTree class is to have at least the following public constructors and methods:

  • A zero-argument constructor that constructs an empty AVL tree.
  • A constructor that takes an appropriately parametrized Collection, and constructs a tree containing all of the members of the collection.
  • A method insert that takes an element of the appropriate type and inserts it into the AVL tree. The resulting tree is to be an AVL tree. The return type is to be void. The tree size should be updated if and only if the insertion succeeded. Attempts at duplicate insertions or insertions of null values should be handled by throwing an IllegalArgumentException with an appropriate error message. Note that this exception class is already defined.
  • A zero-argument method height that returns the height of the tree as an int
  • A zero-argument method size that returns the number of elements of the tree (as an int)
  • Two methods getCounter() and resetCounter() that respectively return the value of the tree's counter, and set it to 0
  • Four zero-argument methods for traversal, each of which returns an appropriately parametrized List of the tree members, in sorted order or reverse sorted order. Specifically, you are to define
    • a method traverse that works recursively and returns a List of the tree's data items in sorted order
    • a method traverseInReverse that works recursively and returns a List of the tree's data items in the reverse of sorted order
    • a method iterativeTraverse that works by repeatedly finding inorder successors. This method is to return a List of the tree's data items in sorted order.
    • a method iterativeTraverseInReverse that works by repeatedly finding inorder predecessors. This method is to return a List of the tree's data items in the reverse of sorted order.

Reference no: EM13346846

Questions Cloud

Part -1 consider the product paint1identify a suitable : part -1 consider the product paint1.identify a suitable functional unit for a stand alone study on paint.2.define a
Write a blog article for a codingtechnical community : write a blog article for a codingtechnical community blog.the theme is general c or java. choose any subject under this
1 daily airlines fies from amsterdam to london every day : 1. daily airlines fies from amsterdam to london every day. the price of a ticket for this extremely popular flight
In this project we will consider the control of a : in this project we will consider the control of a synchronous generator supplying electricity to the grid. we will
Implement avl trees that allows both iterative traversal : implement avl trees that allows both iterative traversal and recursive traversal.iterative traversal is fairly easy if
Analysis and implementation of algorithms for memory : analysis and implementation of algorithms for memory allocation in operating systemexplain first-t and best-t methods
The increasing need to travel and lifestyle changes of : the increasing need to travel and lifestyle changes of society has made airlines industry one of the most demanded and
Write a paper on mcdonaldsethics and social responsibility : write a paper on mcdonalds.ethics and social responsibility at mcdonaldspaper includesabout mcdonaldscorporate social
Memory managementwrite a paper to provide depth knowledge : memory managementwrite a paper to provide depth knowledge of how memory is used in executing your programs and its

Reviews

Write a Review

JAVA Programming Questions & Answers

  What is overloading and what is overriding

What is overloading and what is overriding? Please use code to explain it.

  Implement the application using a singly linked list

Implement the following application using a singly linked list. This application accepts from console and stores a list of 10 names of your friends in the singly linked list

  Explain how the loop displaying the menu

Explain how the loop displaying the menu is exited, what value does menuSel have when the program finishes? Describe what happens next when menuSel gets this value.

  Uses a loop to populate a one-dimensional array

Write the following program that creates and uses a loop to populate a one-dimensional array that holds the even numbers between 1 and 12; creates and uses a loop to populate a second one-dimensional array that holds the odd numbers between 1 and 12;..

  Outline a test plan for a substantial real-life system

Describe how you would approach the design and testing process to ensure success and quality in the result and where are the risks? How are you going to address them?

  What is the full path the to location of the web application

suppose that you are creating a java web application named "cset-test" consisting of a JSP file named "main.jsp" , and a java Servlet in a file named "InfoServlet.java". The user's home directory is /home/jdoe.

  Java write a program that creates a 4 x 6 two-dimensional

Using Java write a program that creates a 4 x 6 two-dimensional array. The program should use loops to populate the array with random numbers between 1 and 100. After the values have populated the array, output the values of the array to the screen i..

  Create an array of size n and fill it

Sketch a high level design of what you want to implement using the UML notation. At the very least, you should have a use case diagram, class diagram and a sequence diagram.

  Create online store web site

the Java and JSP source codes and SQL scripts for creating a database in Oracle - any configuration files used

  Which a ball is released from a user-defined height

Write a program in which a ball is released from a user-defined height and free-falls to the ground. The ball is pulled by earth's gravity of 9.8 m/sec 2 . Assume that each pixel represents

  Java threads

This is an introductory assignment on Java synchronization. You will use Java Threads while learning more about concurrency and achieving atomicity using Java’s inbuilt mechanisms.

  What violations and crimes would you definitely file

What if you were a parole officer and had to decide whether or not to file complaints against your parolees? What violations and crimes would you definitely file complaints for and what would you most likely overlook and why?

Free Assignment Quote

Assured A++ Grade

Get guaranteed satisfaction & time on delivery in every assignment order you paid with us! We ensure premium quality solution document along with free turntin report!

All rights reserved! Copyrights ©2019-2020 ExpertsMind IT Educational Pvt Ltd