Introduction to Java Programming and Data Structures, Comprehensive Version (11th Edition)
11th Edition
ISBN: 9780134670942
Author: Y. Daniel Liang
Publisher: PEARSON
expand_more
expand_more
format_list_bulleted
Question
Chapter 18.7, Problem 18.7.1CP
Program Plan Intro
Towers of Hanoi:
This is a type of program which is difficult to solve. It gets easier to solve using recursion. The problem includes moving a particular number of disks of different sizes from one tower to another. It has certain rules in moving the disks they are:
- The towers are labeled “A”, “B”, and “C”. The disks are labeled as 1, 2, 3, and so on.
- The bigger disk should not be on the top of smaller disk.
- Initially all the disks are placed on tower A.
- Only one disk can be moved at a time.
The aim of this problem is to move all the disks from tower A to tower B without violating the above rules.
Expert Solution & Answer
Want to see the full answer?
Check out a sample textbook solutionStudents have asked these similar questions
Which one is NOT true about the following code?
Select one:
a.
The setUp() method tests if it creates properly aList and anElement.
b.
The remove() method tests if the remove() method in the adaptee removes properly anElement from aList.
c.
The add() method tests if the add() method in the adaptee adds properly anElement to aList.
d.
The add() method tests if the add() method in the adaptee increases the size of aList by 1 when anElement is added to aList.
e.
The remove() method tests if the remove() method in the adaptee decreases the size of aList by 1 when anElement is removed from aList.
You are to implement removeHead, and removeTail and you also have to create the following functions (for visual purposes of the detail explanation, header and trailer sentinels are described as h and t respectively): IMPORTANT NOTE: For all the methods that has the pos parameter i.e. addAt, removeAt, move, make sure to access that specified position from whichever is nearer - the head or the tail - similar to what we have done in the get method.
Example DoublyLinkedList: h <-> 10 <-> 30 <-> 40 <-> 50 <-> t
int add(int num)
This will add the element num into the last element of the linked list and return the position of the newly-added element. In the above example, having add(60) will return 5 as it is the fifth position in the list.
int remove(int num)
This will remove the first instance of the element and return the position of the removed element. In the above example, having remove(40) will return 3 as 40 was the third element in the linked list…
Which action of the link library generates a random integer that falls somewhere inside a certain range?
Chapter 18 Solutions
Introduction to Java Programming and Data Structures, Comprehensive Version (11th Edition)
Ch. 18.2 - What is a recursive method? What is an infinite...Ch. 18.2 - Prob. 18.2.2CPCh. 18.2 - Show the output of the following programs and...Ch. 18.2 - Prob. 18.2.4CPCh. 18.2 - Prob. 18.2.5CPCh. 18.2 - Write a recursive mathematical definition for...Ch. 18.3 - Prob. 18.3.1CPCh. 18.3 - What is wrong in the following methods?Ch. 18.3 - Prob. 18.3.3CPCh. 18.4 - Describe the characteristics of recursive methods.
Ch. 18.4 - Prob. 18.4.2CPCh. 18.4 - Prob. 18.4.3CPCh. 18.5 - Prob. 18.5.1CPCh. 18.5 - Prob. 18.5.2CPCh. 18.5 - What is a recursive helper method?Ch. 18.6 - Prob. 18.6.1CPCh. 18.6 - How does the program get all files and directories...Ch. 18.6 - How many times will the getSize method be invoked...Ch. 18.6 - Will the program work if the directory is empty...Ch. 18.6 - Will the program work if line 20 is replaced by...Ch. 18.6 - Will the program work if lines 20 and 21 are...Ch. 18.7 - Prob. 18.7.1CPCh. 18.8 - Prob. 18.8.1CPCh. 18.8 - Prob. 18.8.2CPCh. 18.8 - How many times is the displayTriangles method...Ch. 18.8 - Prob. 18.8.4CPCh. 18.8 - Prob. 18.8.5CPCh. 18.9 - Which of the following statements are true? a. Any...Ch. 18.9 - Prob. 18.9.2CPCh. 18.10 - Identify tail-recursive methods in this chapter.Ch. 18.10 - Rewrite the fib method in Listing 18.2 using tail...Ch. 18 - Prob. 18.1PECh. 18 - Prob. 18.2PECh. 18 - (Compute greatest common divisor using recursion)...Ch. 18 - (Sum series) Write a recursive method to compute...Ch. 18 - (Sum series) Write a recursive method to compute...Ch. 18 - (Sum series) Write a recursive method to compute...Ch. 18 - (Fibonacci series) Modify Listing 18.2,...Ch. 18 - Prob. 18.8PECh. 18 - (Print the characters in a string reversely) Write...Ch. 18 - (Occurrences of a specified character in a string)...Ch. 18 - Prob. 18.11PECh. 18 - (Print the characters in a string reversely)...Ch. 18 - (Find the largest number in an array) Write a...Ch. 18 - (Find the number of uppercase letters in a string)...Ch. 18 - Prob. 18.15PECh. 18 - (Find the number of uppercase letters in an array)...Ch. 18 - (Occurrences of a specified character in an array)...Ch. 18 - (Tower of Hanoi) Modify Listing 18.8,...Ch. 18 - Prob. 18.19PECh. 18 - (Display circles) Write a Java program that...Ch. 18 - (Decimal to binary) Write a recursive method that...Ch. 18 - (Decimal to hex) Write a recursive method that...Ch. 18 - (Binary to decimal) Write a recursive method that...Ch. 18 - (Hex to decimal) Write a recursive method that...Ch. 18 - Prob. 18.25PECh. 18 - (Create a maze) Write a program that will find a...Ch. 18 - (Koch snowflake fractal) The text presented the...Ch. 18 - (Nonrecursive directory size) Rewrite Listing...Ch. 18 - (Number of files in a directory) Write a program...Ch. 18 - (Game: Knights Tour) The Knights Tour is an...Ch. 18 - (Game: Knights Tour animation) Write a program for...Ch. 18 - (Game: Eight Queens) The Eight Queens problem is...Ch. 18 - Prob. 18.35PECh. 18 - (Sierpinski triangle) Write a program that lets...Ch. 18 - (Hilbert curve) The Hilbert curve, first described...Ch. 18 - (Recursive tree) Write a program to display a...Ch. 18 - Prob. 18.39PE
Knowledge Booster
Similar questions
- I need help answering part 2 of this HW question (what is the correct sequence of #'s)???arrow_forwardQUESTION 12 What value should the second parameter be in the startsWith method to successfully search for "charlie" in the target string "bravo echo charlie alpha"?arrow_forwardRules: Corner cases. By convention, the row and column indices are integers between 0 and n − 1, where (0, 0) is the upper-left site. Throw an IllegalArgumentException if any argument to open(), isOpen(), or isFull() is outside its prescribed range. Throw an IllegalArgumentException in the constructor if n ≤ 0. Unit testing. Your main() method must call each public constructor and method directly and help verify that they work as prescribed (e.g., by printing results to standard output). Performance requirements. The constructor must take Θ(n^2) time; all instance methods must take Θ(1)Θ(1) time plus Θ(1)Θ(1) calls to union() and find().arrow_forward
- Please answer the question in the screenshot. The language used is Java.arrow_forwardJAVAFX: Allowed functions for drawing (Ellipse2D,CubicCurve,QuadCurve,Arc2D) [draw all of these shapes please] ID ended with 0.1 ID ended with 2.3 ID ended with 4,5 ID ended with 6.7arrow_forwardAsk the user for a starting point and ending point. Sort the user list using the method on the previous question but only display the users within the entered range. Here is the data text. I cant copy and paste it because it is too long. https://textuploader.com/t1ol7 I already Have a code but it doesn't sort right. I believe there is something wrong. The pic without red should be the correct answer. import java.io.File;import java.io.FileNotFoundException;import java.util.ArrayList;import java.util.Scanner;public class ggk{public static void main(String[] args){String filename = "user-database.txt";Scanner infile = null;try {infile = new Scanner(new File(filename));} catch (FileNotFoundException e) {System.out.println(e.getMessage());}ArrayList<String> usernames = new ArrayList<String>();ArrayList<String> passwords = new ArrayList<String>();int start, end;Scanner input = new Scanner(System.in);System.out.println("Enter a starting point and ending point");start…arrow_forward
- In this part you will handle a new kind of transaction called a transfer where money is moved from one account to another account. Implement the method: • public boolean transferFromOneToAnother(String fromName, String toName, double amount) - Make a transfer from one account (fromName) to another (toName). Return true if funds are sufficient for transfer (otherwise false ). (Hint: this is similar to the two methods from Part 2, but you need to think a bit about the success/failure cases.) In the input file, transfers are indicated by listing two account handles and an amount, like lines 2, 4 and 6 of the file input6.txt where funds are transferred from Alice to Bob and vice versa: DEPOSIT Alice 300 Alice Bob 150 DEPOSIT Alice 400 Alice Bob 250 WITHDRAW Bob 200 Bob Alice 600 The result of running it should look like this: % javac-introcs TigerCoin.java % java-introcs TigerCoin Alice : 300.0 (success: true) Alice -> Bob : 150.0 (success: true) DEPOSIT -> Alice : 400.0 (success: true)…arrow_forwardWrite the source code of a “self-calling/self-processing” PHP page. This page should ask a string(text) from the user and then when submitted via POST method; should display the string(text) as it is submitted, and in altered casing characters (if applicable). Note that altering should start with a capital letter(the first character is always capital). The sample run is presented below. Hint: The location of characters(indexes) is very important.arrow_forwardhttps://youtu.be/4hAoK54Pfdc Here is a video regarding the kit component.arrow_forward
- In Java. Screenshot explains what needs to happen in class StringCompare Prompts should be as shown in the blue boxarrow_forwardAdd a validation function using Javascript that does the following 2 things: validates that password entered by the user and reentered password match. Note that minlength ensures it's a minimum of 8 of characters. Test thoroughly!!! Note that usually you would want to check that password meets some minimum requirements such as it includes both upper and lowercase letters and either a number or special character. In Javascript, we use regular expressions to do this. For this assignments, just make sure the password and reentered password match. validates that the username isn't already taken. Create an array of existing valid usernames. Include Harry, Elizabeth, and Shana.arrow_forwardPlease read the instructions carefully and keep in mind of the bolded phrases. You are NOT ALLOWED to use HashSet Create a project in NetBeans and name the project Hw06. The class will contain the following static methods: reverseS – A method that displays a string reversely on the console using the following signature: publicstaticvoidreverseS(Strings) printSub1 – print all substrings of a string (duplicated substrings are allowed, but loops are not allowed). The method signature: public static void printSub1(String s) printSub2 – print all substrings of a string (duplicated substrings are not allowed, but loops are allowed). The method signature: public static void printSub2(String s) Note: All methods should be RECURSIVE. Any predefined classes that are based on Set are not allowed. In the main method, read a string from the user and output the reversed string and substrings to the screen: Sample Run: Please input a string: abcdThe reversed string: dcbaThe substrings…arrow_forward
arrow_back_ios
SEE MORE QUESTIONS
arrow_forward_ios
Recommended textbooks for you
- C++ Programming: From Problem Analysis to Program...Computer ScienceISBN:9781337102087Author:D. S. MalikPublisher:Cengage Learning
C++ Programming: From Problem Analysis to Program...
Computer Science
ISBN:9781337102087
Author:D. S. Malik
Publisher:Cengage Learning