EBK BIG JAVA: EARLY OBJECTS, INTERACTIV
EBK BIG JAVA: EARLY OBJECTS, INTERACTIV
6th Edition
ISBN: 8220102010314
Author: Horstmann
Publisher: YUZU
Question
Book Icon
Chapter 16, Problem 7PE
Program Plan Intro

Reimplementation of “LinkedList” class

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 “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 “Node.java”, create a class “Node”,
    • Create necessary object variables.
    • Define the constructor to create initial node.
    • Define the method “getData()”,
      • Return the node value.
        • Define the method “getNext()”,
          • Return the next reference.
        • Define the method “setData()”,
          • Set the node value.
  • In a file “LinkedList.java”, import the package and create a class “LinkedList”,
    • Declare the object variable.
    • 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 the front of the linked list,
      • Create a new node.
      • Assign the value to the first reference.
        • Define the method “listIterator()” of type “ListIterator”, that returns an iterator to iterate through the list.
        • Define the method “getFirstNode()” to get the first reference.
  • In a file “LinkedListIterator.java”, import the package and create a class “LinkedListIterator”,
    • Declare the necessary object variables.
    • Define the constructor that creates 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.
      • Assign the position to the front of the linked list.
      • Check if position is null, set the first element to the position.
      • Otherwise, set the next position to the current position.
      • Returns the value.
        • Define the method “hasNext()” that check whether there is next element,
          • Check if position is null,
            • Returns true if first reference is not null.
              • Otherwise,
                • Returns true, if the next reference of the position is not null.
        • Define the method “add()”,
          • If position is null, call the method “addFirst()”.
            • Set the first to the position.
              • Otherwise, create a new node.
                • Create a new node.
                • Call the method “setNext()”.
                • Set the new node as the position.
              • Assign the position to previous.
        • Define the method “remove()”,
          • Check if the position is same as previous, throws an exception.
          • If position is same as the first, calls the method “removeFirst()”.
          • Otherwise,
            • Set the next position to the previous position.
              • Set the previous to the positions.
        • Define the method “set()”,
          • If the position is null, throws an exception.
          • Call the method “setData()”.
  • In a file “ListTest.java”, create a class “ListTest”,
    • Define the “main()” method.
      • Create the “LinkedList” object.
      • Call the method “addFirst()” to add “Tommy” to the front of the linked list.
      • Call the method “addFirst()” to add “Roma” to the font of the linked list.
      • Call the method “addFirst()” to add “Harris” to the font of the linked list.
      • Call the method “addFirst()” to add “David” to the font of the linked list.
      • Assign the value returned from the method “listIterator()” calling by  “LinkedList” object.
      • Call the method “next()”.
      • Call the method “next()”.
      • Call the method “add()” to add the element “John”.
      • Call the method “add()” to add the element “Nick”.
      • Call the method “next()”.
      • Call the method “remove()” to remove the last traversed element.
      • Get the iterator.
      • Execute a loop,
        • Print the actual output.
              • Print the new line.
              • Print the expected output.
              • Get the iterator.
              • Create a node.

Blurred answer
Students have asked these similar questions
Objective: 1. Implement a custom Vector class in C++ that manages dynamic memory efficiently. 2. Demonstrate an understanding of the Big Five by managing deep copies, move semantics, and resource cleanup. 3. Explore the performance trade-offs between heap and stack allocation. Task Description: Part 1: Custom Vector Implementation 1. Create a Vector class that manages a dynamically allocated array. 。 Member Variables: ° T✶ data; // Dynamically allocated array for storage. std::size_t size; // Number of elements currently in the vector. std::size_t capacity; // Maximum number of elements before reallocation is required. 2. Implement the following core member functions: Default Constructor: Initialize an empty vector with no allocated storage. 。 Destructor: Free any dynamically allocated memory. 。 Copy Constructor: Perform a deep copy of the data array. 。 Copy Assignment Operator: Free existing resources and perform a deep copy. Move Constructor: Transfer ownership of the data array…
2.68♦♦ Write code for a function with the following prototype: * Mask with least signficant n bits set to 1 * Examples: n = 6 -> 0x3F, n = 17-> 0x1FFFF * Assume 1 <= n <= w int lower_one_mask (int n); Your function should follow the bit-level integer coding rules Be careful of the case n = W.
Hi-Volt Components You are the IT manager at Hi-Voltage Components, a medium-sized firm that makes specialized circuit boards. Hi-Voltage's largest customer, Green Industries, recently installed a computerized purchasing sys- tem. If Hi-Voltage connects to the purchasing system, Green Industries will be able to submit purchase orders electronically. Although Hi-Voltage has a computerized accounting system, that system is not capable of handling EDI. Tasks 1. What options does Hi-Voltage have for developing a system to connect with Green Industries' pur- chasing system? 2. What terms or concepts describe the proposed computer-to-computer relationship between Hi-Voltage and Green Industries? why not? 3. Would Hi-Voltage's proposed new system be a transaction processing system? Why or 4. Before Hi-Voltage makes a final decision, should the company consider an ERP system? Why or why not?

Chapter 16 Solutions

EBK BIG JAVA: EARLY OBJECTS, INTERACTIV

Knowledge Booster
Background pattern image
Similar questions
SEE MORE QUESTIONS
Recommended textbooks for you
Text book image
Database System Concepts
Computer Science
ISBN:9780078022159
Author:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:McGraw-Hill Education
Text book image
Starting Out with Python (4th Edition)
Computer Science
ISBN:9780134444321
Author:Tony Gaddis
Publisher:PEARSON
Text book image
Digital Fundamentals (11th Edition)
Computer Science
ISBN:9780132737968
Author:Thomas L. Floyd
Publisher:PEARSON
Text book image
C How to Program (8th Edition)
Computer Science
ISBN:9780133976892
Author:Paul J. Deitel, Harvey Deitel
Publisher:PEARSON
Text book image
Database Systems: Design, Implementation, & Manag...
Computer Science
ISBN:9781337627900
Author:Carlos Coronel, Steven Morris
Publisher:Cengage Learning
Text book image
Programmable Logic Controllers
Computer Science
ISBN:9780073373843
Author:Frank D. Petruzella
Publisher:McGraw-Hill Education