
Big Java Late Objects
2nd Edition
ISBN: 9781119330455
Author: Horstmann
Publisher: WILEY
expand_more
expand_more
format_list_bulleted
Question
Chapter 16, Problem 7PP
Program Plan Intro
Circular doubly-linked list
Program plan:
- In a file “ListIterator.java”, create an interface “ListIterator”,
- Declare the method “next()” that moves the iterator past the next element.
- Declare the method “hasNext()” that check if there is an element after the iterator position.
- Declare the method “previous()”.
- Declare the method “hasPrevious()”.
- Declare the method “add()” that adds an element before the position of the iterator and moves the iterator past the added element.
- Declare the method “remove()” that removes the last traversed element.
- Declare the method “set()” to set the last traversed element to a previous value.
- In a file “LinkedList.java”, import the package and create a class “LinkedList”,
- Declare two object variables of type “Node”.
- Define the constructor to create an empty linked list.
- Define the method “getFirst()” that returns the first element in the linked list.
- Define the method “removeFirst()” to remove the first element in the linked list.
- Define the method “addFirst()” that adds an element to front of the linked list.
- Define the method “getLast()” that returns an element last in the linked list.
- Define the method “removeLast()” that removes an element present last in the linked list.
- Define the method “addLast()” that adds an element to the last in the linked list.
- Define the method “listIterator()” of type “ListIterator”, that returns an iterator for iterating through the list.
- Create a class “Node”,
- Declare the object variable for “Object”, and “Node”.
- Create a class “LinkedListIterator”,
- Declare the necessary object variables.
- Declare the necessary Boolean variables.
- Define the constructor to create an iterator that points to the front of the linked list.
- Define the method “next()”,
-
- If there is no next element then throws an exception.
- Set the Boolean values to the Boolean variables.
- Check if position is null, set the first element to the position.
- Otherwise, set the next position to the current position.
- Returns the value at the position.
- Define the method “hasNext()” that check whether there is an element after the iteration and before the starting of the list.
- Define the method “add()”,
-
- If position is null,
- Returns the value.
- Otherwise,
- Returns the value.
- Otherwise,
- Returns the value.
- If position is null,
- Define the method “previous()”,
-
- Check if there is any previous element,
- Throws an exception.
- Assign the Boolean value to the Boolean variables.
- Check the condition,
- Set the null value to the position.
- Throws an exception.
- Check if there is any previous element,
- Define the method “hasPrevious()”,
-
- Returns the Boolean value.
- Define the method “add()”,
-
- If position is null,
- Call the method “addFirst()”.
- Set the first to the position.
- Check the condition,
- Call the method “addLast()”.
- Assign the value.
- Otherwise,
- Create a new node.
- Set the value to the new node.
- Set the next position to the next pointer of new node.
- Assign the new node value to the previous of the new next node value.
- Assign the new node value to the next position.
- Assign the position to the previous of the new node.
- Assign the new node to the position.
- Assign the Boolean values to the Boolean variables.
- Check the condition,
- If position is null,
- Define the method “remove()”,
-
- Assign the value returned from the method “lastPosition()” to the position.
- Check the condition,
- Call the method “removeFirst()”.
- Otherwise, check another condition,
- Call the method “removeLast()”.
- Otherwise,
- Assign the value at the next position to the value at the next of the previous position.
- Assign the value at the previous position to the previous of the next position.
- Check if there is an element after the next position,
- Assign the value at the previous position to the current position.
- Assign the Boolean values to the Boolean variables.
- Otherwise, check another condition,
- Call the method “removeFirst()”.
- Define the method “set()”,
-
- Assign the value returned from the method “lastPosition()”.
- Assign the value.
- Define the method “lastPosition()” that returns the last node iterated by the iterator if there was not an immediately preceding call to previous or next.
- Create a class “LinkedListIterator”,
- Declare the object variable for “Object”, and “Node”.
- In a file “ListTest.java”, create a class “ListTest”,
- Define the “main()” method.
- Create “LinkedList” object.
- Get and print the number of fields in a circular list.
- Print the expected result.
- Call the method “addFirst()”.
- Call the method “addFirst()”.
- Call the method “addLast()”.
- Print he value returned from the method “getFirst()”.
- Print the expected result.
- Print the value obtained from the method “getLast()”.
- Print the expected result.
- Call the method “removeLast()”.
- Print the result obtained from the method “getLast()”.
- Print the expected result.
- Call the method “removeFirst()”.
- Print the value returned from the method “getFirst()”.
- Print the expected result.
- Call the method “addFirst()”.
- Assign the value returned from the method “listIterator()”.
- Print the value returned from the method “hasNext()”.
- Print the expected result.
- Call the method “next()”
- Print the value obtained from the method “hasNext()”.
- Print the expected result.
- Print the value returned from the method “hasPrevious()”.
- Print the expected result.
- Print the value returned from the method “next()”.
- Print the expected result.
- Print the value returned from the method “previous()”.
- Print the expected result.
- Define the “main()” method.
Expert Solution & Answer

Want to see the full answer?
Check out a sample textbook solution
Students have asked these similar questions
Write a C program using embedded assembler in which you use your own function to multiply by two without using the product.
Tip: Just remember that multiplying by two in binary means shifting the number one place to the left. You can use the sample program from the previous exercise as a basis, which increments a variable. Just replace the INC instruction with SHL.
using r language
r language
Chapter 16 Solutions
Big Java Late Objects
Ch. 16.1 - Prob. 1SCCh. 16.1 - Prob. 2SCCh. 16.1 - Prob. 3SCCh. 16.1 - Prob. 4SCCh. 16.1 - Prob. 5SCCh. 16.1 - Prob. 6SCCh. 16.1 - Prob. 7SCCh. 16.2 - Prob. 8SCCh. 16.2 - Prob. 9SCCh. 16.2 - Prob. 10SC
Ch. 16.2 - Prob. 11SCCh. 16.2 - Prob. 12SCCh. 16.3 - Prob. 13SCCh. 16.3 - Prob. 14SCCh. 16.3 - Prob. 15SCCh. 16.3 - Prob. 16SCCh. 16.3 - Prob. 17SCCh. 16.3 - Prob. 18SCCh. 16.4 - Prob. 19SCCh. 16.4 - Prob. 20SCCh. 16.4 - Prob. 21SCCh. 16.4 - Prob. 22SCCh. 16.4 - Prob. 23SCCh. 16.4 - Prob. 24SCCh. 16 - Prob. 1RECh. 16 - Prob. 2RECh. 16 - Prob. 3RECh. 16 - Prob. 4RECh. 16 - Prob. 5RECh. 16 - Prob. 6RECh. 16 - Prob. 7RECh. 16 - Prob. 8RECh. 16 - Prob. 9RECh. 16 - Prob. 10RECh. 16 - Prob. 11RECh. 16 - Prob. 12RECh. 16 - Prob. 13RECh. 16 - Prob. 14RECh. 16 - Prob. 15RECh. 16 - Prob. 16RECh. 16 - Prob. 17RECh. 16 - Prob. 18RECh. 16 - Prob. 19RECh. 16 - Prob. 20RECh. 16 - Prob. 21RECh. 16 - Prob. 22RECh. 16 - Prob. 23RECh. 16 - Prob. 24RECh. 16 - Prob. 25RECh. 16 - Prob. 26RECh. 16 - Prob. 1PECh. 16 - Prob. 2PECh. 16 - Prob. 3PECh. 16 - Prob. 4PECh. 16 - Prob. 5PECh. 16 - Prob. 6PECh. 16 - Prob. 7PECh. 16 - Prob. 8PECh. 16 - Prob. 9PECh. 16 - Prob. 10PECh. 16 - Prob. 11PECh. 16 - Prob. 12PECh. 16 - Prob. 13PECh. 16 - Prob. 14PECh. 16 - Prob. 15PECh. 16 - Prob. 16PECh. 16 - Prob. 17PECh. 16 - Prob. 18PECh. 16 - Prob. 19PECh. 16 - Prob. 20PECh. 16 - Prob. 21PECh. 16 - Prob. 1PPCh. 16 - Prob. 2PPCh. 16 - Prob. 3PPCh. 16 - Prob. 4PPCh. 16 - Prob. 5PPCh. 16 - Prob. 6PPCh. 16 - Prob. 7PPCh. 16 - Prob. 8PPCh. 16 - Prob. 9PPCh. 16 - Prob. 10PPCh. 16 - Prob. 11PPCh. 16 - Prob. 12PPCh. 16 - Prob. 13PPCh. 16 - Prob. 14PPCh. 16 - Prob. 15PPCh. 16 - Prob. 16PPCh. 16 - Prob. 17PP
Knowledge Booster
Similar questions
- r languagearrow_forwardR languagearrow_forwardQuestion 1 (15 Points) Inheritance: In this question, we are going to create a new subclass of the SimpleGeometricObject class, named Triangle. Create a SimpleGeometricObject.java and Copy the source code of the SimpleGeometricObject class from the following link: https://liveexample.pearsoncmg.com/html/SimpleGeometricObject.html TASK 1: Create a Triangle class that extends the SimpleGeometricObject class in Eclipse, following the below UML diagram. + base:double = 5 + height:double = 10 Triangle + Triangle() + Triangle(newBase: double, newHeight: double) + getArea(): double + setBase(): void + setHeight(): void + getBase(): double + getHeight(): doublearrow_forward
- Question 2 (10 Points): String vs. StringBuilder Create a Question2.java file and finish the following tasks: Task 1. a) Create a 1D array of integers to store 50 integers. b) Store values from 0 to 49 in the array you just created. c) Create a new String Object using no-arg constructor. d) Using for loop to add the array elements one by one to the String (one per loop iteration) Hint: to append an element to a String, use the + operator. e) Output the String on the console. Record and display a run-time it took to append all integers to the String (record run-time of 1.d.)). Please submit a screenshot. The screenshot should match the following example: 012345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 it took 196708 nanoseconds to append 50 integers to the String.| Hint: You can use the following statements to record run-time. long begin, end, time; // we will measure time it took begin = System.nanoTime(); //we measure in nanoseconds. // put…arrow_forwardAnswer this Java OOP question below: Discuss the challenges and benefits of using multiple levels of inheritance in a class hierarchy. How can deep inheritance structures impact the maintainability and readability of code?arrow_forwardAnswer the Java OOP question below: Explain the relationship between a superclass and a subclass. How do the principles of encapsulation and abstraction play a role in this relationship? In your experience, how do you decide what should be included in a superclass versus a subclass? Share an example where a well-defined superclass-subclass hierarchy improved your code.arrow_forward
- 1.) Consider the problem of determining whether a DFA and a regular expression are equivalent. Express this problem as a language and show that it is decidable. ii) Let ALLDFA = {(A)| A is a DFA and L(A) = "}. Show that ALLDFA is decidable. iii) Let AECFG = {(G)| G is a CFG that generates &}. Show that AECFG is decidable. iv) Let ETM {(M)| M is a TM and L(M) = 0}. Show that ETM, the complement of Erm, is Turing-recognizable. Let X be the set {1, 2, 3, 4, 5} and Y be the set {6, 7, 8, 9, 10). We describe the functions f: XY and g: XY in the following tables. Answer each part and give a reason for each negative answer. n f(n) n g(n) 1 6 1 10 2 7 2 9 3 6 3 8 4 7 4 7 5 6 5 6 Aa. Is f one-to-one? b. Is fonto? c. Is fa correspondence? Ad. Is g one-to-one? e. Is g onto? f. Is g a correspondence? vi) Let B be the set of all infinite sequences over {0,1}. Show that B is uncountable using a proof by diagonalization.arrow_forwardCan you find the least amount of different numbers to pick from positive numbers (integers) that are at most 100 to confirm two numbers that add up to 101 when each number can be picked at most two times?arrow_forwardCan you find the formula for an that satisfies the provided recursive definition? Please show all steps and justificationarrow_forward
- What is the number of injective functions f from set {1,2,....,2n} to set {1,2,....,2n} so that f(x) >= x for all the 1<= x <= n?arrow_forwardIdeal MOSFET Current–Voltage Characteristics—NMOS Device and draw the circuitarrow_forward1. Create a Person.java file. Implement the public Person and Student classes in Person.java, including all the variables and methods in the UMLS. Person -name: String -street: String -city: String +Person(String name, String, street, String, city) +getName(): String +setName(String name): void +getStreet(): String +setStreet(String street): void +getCity(): String +setCity(String City): void +toString(): String Student -Id: int +Person(String name, String, street, String, city, int Id) +getId(): int +setId(int Id): void +toString(): String 2. Create a StudentTest.java file. Implement a public StudentTest class with a main method. In the main method, create one student object and print the object using System.out.println(). Your printing result must follow the example output: name: Mike, street: Morris Ave, city: Union, Id: 1000 Hint: You need to modify the toString methods in the Student class and Person class!arrow_forward
arrow_back_ios
SEE MORE QUESTIONS
arrow_forward_ios
Recommended textbooks for you
- Database System ConceptsComputer ScienceISBN:9780078022159Author:Abraham Silberschatz Professor, Henry F. Korth, S. SudarshanPublisher:McGraw-Hill EducationStarting Out with Python (4th Edition)Computer ScienceISBN:9780134444321Author:Tony GaddisPublisher:PEARSONDigital Fundamentals (11th Edition)Computer ScienceISBN:9780132737968Author:Thomas L. FloydPublisher:PEARSON
- C How to Program (8th Edition)Computer ScienceISBN:9780133976892Author:Paul J. Deitel, Harvey DeitelPublisher:PEARSONDatabase Systems: Design, Implementation, & Manag...Computer ScienceISBN:9781337627900Author:Carlos Coronel, Steven MorrisPublisher:Cengage LearningProgrammable Logic ControllersComputer ScienceISBN:9780073373843Author:Frank D. PetruzellaPublisher:McGraw-Hill Education

Database System Concepts
Computer Science
ISBN:9780078022159
Author:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:McGraw-Hill Education

Starting Out with Python (4th Edition)
Computer Science
ISBN:9780134444321
Author:Tony Gaddis
Publisher:PEARSON

Digital Fundamentals (11th Edition)
Computer Science
ISBN:9780132737968
Author:Thomas L. Floyd
Publisher:PEARSON

C How to Program (8th Edition)
Computer Science
ISBN:9780133976892
Author:Paul J. Deitel, Harvey Deitel
Publisher:PEARSON

Database Systems: Design, Implementation, & Manag...
Computer Science
ISBN:9781337627900
Author:Carlos Coronel, Steven Morris
Publisher:Cengage Learning

Programmable Logic Controllers
Computer Science
ISBN:9780073373843
Author:Frank D. Petruzella
Publisher:McGraw-Hill Education