Question: Expand the class from Project 10 or 11 so that there is an extra method that produces a Java Iterator for the bag. Data from
Expand the class from Project 10 or 11 so that there is an extra method that produces a Java Iterator for the bag.
Data from Project 10
Write a class for a bag of strings, where the strings are stored in a binary search tree. In creating the binary search tree, you should use the string’s compareTo method, which is described on page 499. The tree itself should use the BTNode class from Figure.







Data from Project 11
Java has a generic interface called Comparable. A class that implements the Comparable interface must have a method with this specification:
♦ compareTo
public boolean compareTo(E obj)
Compare this object to another object of the same type.
Returns:
The return value is zero if this object is equal to obj; the return value is negative if this object is smaller than obj; the return value is positive if this object is larger than obj.
Throws: ClassCastException
Indicates that obj is the wrong type of object to be compared with this object.
Write a generic class for a bag of Comparable objects, where the objects are stored in a binary search tree. The tree itself should use the BTNode class from Figure 9.10.
The first line of your new bag class should be:
public class ComparableTreeBag
>
This tells the Java compiler that the Comparable- TreeBag is a generic class, but that any instantiation of the generic type parameter E must implement the Comparable interface.
FIGURE 9.10 Specification and Implementation of the Generic Binary Tree Node Class Generic Class BTNode * public class BTNode from the package edu.colorado.nodes A BTNode provides a node for a binary tree with a reference to an E object as the data in each node. Limitations: Beyond Int. MAX_VALUE elements, treeSize is wrong. Specification Constructor for the BTNode public BTNode(E initialData, BTNode initiallLeft, BTNode initialRight) Initialize a node with specified initial data and links to children. Note that a reference to a child may be null, which indicates that there is no child. Parameters: initialData - the initial data of this new node initialleft and initialRight- references to the children of this new node Postcondition: This new node contains the specified data and links to its children. getData-getLeft-getRight public E getData( ) public BTNode getleft( ) public BTNode getRight( ) These are accessor methods to obtain this node's data or a reference to one of the children. Any of these objects may be null. A null reference to a child indicates that the child does not exist. getLeftmostData public E getleftmostData( ) Accessor method to get the data from the leftmost node of the tree below this node. Returns: The data from the deepest node that can be reached from this node following left links. getRightmostData public E getRightmostData( ) Accessor method to get the data from the rightmost node of the tree below this node. Returns: The data from the deepest node that can be reached from this node following right links.
Step by Step Solution
3.32 Rating (167 Votes )
There are 3 Steps involved in it
import javautilIterator public class StringBag implements Iterable private BTNode root public void a... View full answer
Get step-by-step solutions from verified subject matter experts
