Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

Listing 12.2 in the text is an example of a linked list of objects of type Magazine; the file IntList.java contains an example of a

Listing 12.2 in the text is an example of a linked list of objects of type Magazine; the file IntList.java contains an example of a linked list of integers (see previous exercise). A list of objects is a lot like a list of integers or a particular type of object such as a Magazine, except the value stored is an Object, not an int or Magazine. Write a class ObjList that contains arbitrary objects and that has the following methods:

public void addToFront (Object obj)puts the object on the front of the list

public void addToEnd (Object obj)puts the object on the end of the list

public void removeFirst()rem

oves the first value from the list

public void removeLast()removes the last value from the list

public void print()prints the elements of the list from first to last

These methods are similar to those in IntList. Note that you wont have to write all of these again; you can just make very minor modifications to the IntList methods. Also write an ObjListTest class that creates an ObjList and puts various different kinds of objects in it (String, array, etc) and then prints it.

// *************************************************************** // IntListTest.java // // Driver to test IntList methods. // *************************************************************** import java.util.Scanner; public class IntListTest { private static Scanner scan; private static IntList list = new IntList(); //---------------------------------------------------------------- // Creates a list, then repeatedly prints the menu and does what // the user asks until they quit. //---------------------------------------------------------------- public static void main(String[] args) { scan = new Scanner(System.in); printMenu(); int choice = scan.nextInt(); while (choice != 0) { dispatch(choice); printMenu(); choice = scan.nextInt(); } } //---------------------------------------- // Does what the menu item calls for. //---------------------------------------- public static void dispatch(int choice) { int newVal; switch(choice) { case 0: System.out.println("Bye!"); break; case 1: //add to front System.out.println("Enter integer to add to front"); newVal = scan.nextInt(); list.addToFront(newVal); break; case 2: //add to end System.out.println("Enter integer to add to end"); newVal = scan.nextInt(); list.addToEnd(newVal); break; case 3: //remove first element list.removeFirst(); break; case 4: //print list.print(); break; default: System.out.println("Sorry, invalid choice") } }

//----------------------------------------- // Prints the user's choices //----------------------------------------- public static void printMenu() { System.out.println(" Menu "); System.out.println(" ===="); System.out.println("0: Quit"); System.out.println("1: Add an integer to the front of the list"); System.out.println("2: Add an integer to the end of the list"); System.out.println("3: Remove an integer from the front of the list"); System.out.println("4: Print the list"); System.out.print(" Enter your choice: "); } }

// *************************************************************** // FILE: IntList.java // // Purpose: Defines a class that represents a list of integers //// *************************************************************** public class IntList { private IntNode front; //first node in list //----------------------------------------- // Constructor. Initially list is empty. //----------------------------------------- public IntList() { front = null; } //----------------------------------------- // Adds given integer to front of list. //----------------------------------------- public void addToFront(int val) { front = new IntNode(val,front); } //----------------------------------------- // Adds given integer to end of list. //----------------------------------------- public void addToEnd(int val) { IntNode newnode = new IntNode(val,null); //if list is empty, this will be the only node in it if (front == null) front = newnode; else { //make temp point to last thing in list IntNode temp = front; while (temp.next != null) temp = temp.next; //link new node into list temp.next = newnode; } } //----------------------------------------- // Removes the first node from the list. // If the list is empty, does nothing. //----------------------------------------- public void removeFirst() { if (front != null) front = front.next; } //------------------------------------------------ // Prints the list elements from first to last. //------------------------------------------------ public void print() { System.out.println("--------------------"); System.out.print("List elements: "); IntNode temp = front; while (temp != null) { System.out.print(temp.val + " "); temp = temp.next; } System.out.println(" ----------------------- "); } //************************************************************* // An inner class that represents a node in the integer list. // The public variables are accessed by the IntList class. //************************************************************* private class IntNode{public int val; //value stored in node public IntNode next; //link to next node in list //------------------------------------------------------------------ // Constructor; sets up the node given a value and IntNode reference //------------------------------------------------------------------ public IntNode(int val, IntNode next) { this.val = val; this.next = next; } } }

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

Database Design And SQL For DB2

Authors: James Cooper

1st Edition

1583473572, 978-1583473573

More Books

Students also viewed these Databases questions