A beautiful princess is to select a husband from n suitors. The suitors are assigned numbers 0, . . . , n – 1 and seated at a round table, and a random sequence of n – 1 numbers x0, x1, . . . , xn – 2, all of them in the range 0, . . . , n – 1 is selected. The princess starts at suitor 0, and moving in a clockwise direction, she counts off x0 positions and eliminates the suitor at that position. From there, she counts off another x1 positions and eliminates the suitor at that position. She continues doing this until one lucky guy is left: she marries him and they live happily ever after.
Assume that the princess’ position is always between two suitors. As an example, assume the suitors are A, B, C, and D, with A being numbered 0 and D being numbered 3. Let the random sequence be 0, 2, 1. Then the suitors will be eliminated in the order A, D, and C, and the lucky suitor will be B.
Write a class that uses linked lists to help the princess make her decision. The constructor for the class will be passed the number n of suitors (say 4), followed by a list of n suitors’ names (say A, B, C, D), followed by a list of n – 1 numbers used to “rotate” among the suitors (0, 2, 1). The current position starts at the beginning of the list. The class should have a method rotate(int x) that counts off x steps in the clockwise direction beginning at the current position. The class should have a method
List<String> getEliminated()
that returns a list, in order of elimination, of the names of the suitors already eliminated. The class should also have a method
List <String> getHopeful()
that returns a list of suitors not yet eliminated.
Write a driver program that obtains the input n, a list of n suitors’ names, and a list of n – 1 integers to be used as “rotate steps.” Using the class you have written, the program prints the names of the rejected suitors (in the order of rejection), and then prints the name of the lucky guy.
Delivering a high-quality product at a reasonable price is not enough anymore.
That’s why we have developed 5 beneficial guarantees that will make your experience with our service enjoyable, easy, and safe.
You have to be 100% sure of the quality of your product to give a money-back guarantee. This describes us perfectly. Make sure that this guarantee is totally transparent.
Read moreEach paper is composed from scratch, according to your instructions. It is then checked by our plagiarism-detection software. There is no gap where plagiarism could squeeze in.
Read moreThanks to our free revisions, there is no way for you to be unsatisfied. We will work on your paper until you are completely happy with the result.
Read moreYour email is safe, as we store it according to international data protection rules. Your bank details are secure, as we use only reliable payment systems.
Read moreBy sending us your money, you buy the service we provide. Check out our terms and conditions if you prefer business talks to be laid out in official language.
Read more