A Heap Implementation Reprise: Websites and online courses. The throws Carrano Handle It Now: Keep your course current with updated material Class design is covered in a new Prelude, which is positioned between the Introduction and Chapter 1. Please try again later. Read more Read less. Withoutabox Submit to Film Festivals. Notes — Important ideas are presented or summarized in highlighted paragraphs that are meant to be read in line with the surrounding text.
|Published (Last):||28 August 2004|
|PDF File Size:||8.81 Mb|
|ePub File Size:||16.67 Mb|
|Price:||Free* [*Free Regsitration Required]|
The methods are implementation details that should be hidden from the client. Thus, they should not be public methods.
Implement a method replace for the ADT bag that replaces and returns any object currently in a bag with a given object. Revise the definition of the method clear, as given in Segment 2. Revise the definition of the method remove, as given in Segment 2.
Would this change affect any other method within the class ArrayBag? Begin the file containing ArrayBag with the following statement: import java. Define a method removeEvery for the class ArrayBag that removes all occurrences of a given entry from a bag. An instance of the class ArrayBag has a fixed size, whereas an instance of ResizableArrayBag does not.
Give some examples of situations where a bag would be appropriate if its size is: a. Fixed; b. Simulating any application involving an actual bag, such a grocery bag. Maintaining any collection that can grow in size or whose eventual size is unknown. Suppose that you wanted to define a class PileOfBooks that implements the interface described in Project 2 of the previous chapter. Would a bag be a reasonable collection to represent the pile of books?
The books in a pile have an order. A bag does not order its entries. Suppose that the initial capacity of myBag is What is the length of the array bag after a. Adding entries to myBag? Adding an additional 20 entries to myBag? During the 11th addition, the bag doubles in size to At the 41st addition, it doubles in size again to At the 81st addition, the size becomes and stays that size during the addition of the th entry. The array can accommodate entries.
Since it contains entries, it can accommodate 15 more before having to double in size again. Define a method at the client level that accepts as its argument an instance of the class ArrayBag and returns an instance of the class ResizableArrayBag that contains the same entries as the argument bag. For simplicity, we assume that the original bag contains strings. To drop this assumption, we would need to write the method as a generic method, which is described in Java Interlude 3.
Suppose that a bag contains Comparable objects such as strings. You might want to ask for a pseudocode solution instead of a Java method. Suppose that a bag contains Comparable objects, as described in the previous exercise. Define a method for the class ArrayBag that returns a new bag of items that are less than some given item.
See the note in the solution to Exercise 10 about student background. Define an equals method for the class ArrayBag that returns true when the contents of two bags are the same. Note that two equal bags contain the same number of entries, and each entry occurs in each bag the same number of times.
The order of the entries in each array is irrelevant. The class ResizableArrayBag has an array that can grow in size as objects are added to the bag. Revise the class so that its array also can shrink in size as objects are removed from the bag. The second new method creates a new array that is three quarters the size of the current array and then copies the objects in the bag to the new array: private void reduceArray Implement each of these two methods, and then use them in the definitions of the two remove methods.
Consider the two private methods described in the previous exercise. The method isTooBig requires the size of the array to be greater than What problem could occur if this requirement is dropped? The method reduceArray is not analogous to the method doubleCapacity in that it does not reduce the size of the array by one half.
What problem could occur if the size of the array is reduced by one half instead of three quarters? If the size of the array is less than 20, it will need to be resized after very few additions or removals. Since 20 is not very large, the amount of wasted space will be negligible. If the size of the array is reduced by half, a sequence of alternating removes and adds can cause a resize with each operation.
Define the method union, as described in Exercise 5 of the previous chapter, for the class ResizableArrayBag. Define the method intersection, as described in Exercise 6 of the previous chapter, for the class ResizableArrayBag. Define the method difference, as described in Exercise 7 of the previous chapter, for the class ResizableArrayBag. It is an ordered collection of objects that can be accessed based on their position.
Before continuing the lab you should review the material in Chapter In particular, review the documentation of the interface ListInterface. While not all of the methods will be used in our applications, most of them will.
In the standard version of this game, a group of children gather in a circle and begin a rhyme. If the train should jump the track, will you get your money back? My mother told me to pick the very best one and you are not it. The last person is out of the game and the rhyme is restarted from the next person. Eventually, one person is left and he or she is the lucky individual that has been selected.
This application will read the number of players in the game and the rhyme from the keyboard. The final output will be the number of the selected person. You will use two lists in this application. The first will be a list of numbers representing the players in the game. The second will be a list of words in the rhyme. The second application is one that computes prime numbers using the Sieve of Eratosthenes. Further, suppose the rhyme has three words A, B, C.
There will be five rounds played with one player eliminated in each round. In the following table, fill in the players next to the part of the rhyme they say in each round. Cross out the players as they are eliminated. The first round has been completed for you.
DATA STRUCTURES ABSTRACTIONS JAVA CARRANO PDF
Data Structures and Abstractions with Java, 3rd Edition