Java Reference
In-Depth Information
Eve would then continue, counting three more suitors, and eliminate every third
suitor. When she reached the end of the line, she would continue counting from
the beginning.
For example, if there were six suitors, the elimination process would proceed
as follows:
123456 Initial list of suitors; start counting from 1.
12456 Suitor 3 eliminated; continue counting from 4.
1245 Suitor 6 eliminated; continue counting from 1.
125 Suitor 4 eliminated; continue counting from 5.
15 Suitor 2 eliminated; continue counting from 5.
1 Suitor 5 eliminated; 1 is the lucky winner.
Write a program that creates a circular linked list of nodes to determine which
position you should stand in to marry the princess if there are
n
suitors. Your
program should simulate the elimination process by deleting the node that
corresponds to the suitor that is eliminated for each step in the process.
2.
Although the
long
data type can store large integers, it can't store extremely large
values such as an integer with 200 digits. Create a
HugeNumber
class that uses a
linked list of digits to represent integers of arbitrary length. The class should have
a method to add a new most significant digit to the existing number so that
longer and longer numbers can be created. Also add methods to reset the num-
ber and to return the value of the huge integer as a
String
along with appropri-
ate constructor or accessor methods. Write code to test your class.
Note:
Use of a doubly linked list will make the next problem easier to implement.
3.
Add a copy constructor to the
HugeNumber
class described in the previous prob-
lem that makes a deep copy of the input
HugeNumber
. Also create an
add
method
that adds an input
HugeNumber
to the instance's
HugeNumber
value and returns a
new
HugeNumber
that is set to the sum of the two values. Write code to test the
additions to your class.
4.
Give the definition of a generic class that uses a doubly linked list of data items.
Include a copy constructor, an
equals
method, a
clone
method, a
toString
method, a method to produce an iterator, and any other methods that would
normally be expected. Write a suitable test program.
5.
Complete the definition of the binary search tree class
IntTree
in Display 15.39 by
adding the following: Make
IntTree
implement the
Cloneable
interface, including
the definition of a
clone
method; add a copy constructor; add an
equals
method;
add a method named
sameContents
as described later in this project; add a
toString
method; and add a method to produce an iterator. Define
equals
so that
two trees are equal if (and only if) the two trees have the exact same shape and have
the same numbers in corresponding nodes. The
clone
method and the copy con-