A Linked List of Objects Solution

A Linked List of Objects
The file IntList.java contains an example of a linked list of integers 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.
// ***************************************************************
// FILE: IntList.java
//
// Purpose: Defines a class that represents a list of integers
//
// ***************************************************************
public class IntList
{
privateIntNode front; //first node in list
//-----------------------------------------
// Constructor. Initially list is empty.
//-----------------------------------------
publicIntList()
{
front = null;
}
//-----------------------------------------
// Adds given integer to front of list.
//-----------------------------------------
public void addToFront(intval)
{
front = new IntNode(val,front);
}
//-----------------------------------------
// Adds given integer to end of list.
//-----------------------------------------
public void addToEnd(intval)
{
IntNodenewnode = 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("\n-----------------------\n");
}

//*************************************************************
// An inner class that represents a node in the integer list.
// The public variables are accessed by the IntList class.
//*************************************************************
private class IntNode
{
publicintval; //value stored in node
publicIntNode next; //link to next node in list
//------------------------------------------------------------------
// Constructor; sets up the node given a value and IntNode reference
//------------------------------------------------------------------
publicIntNode(intval, IntNode next)
{
this.val = val;
this.next = next;
}
}
}

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()—removes 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 won’t have to write all of these again; you can just
make very minor modifications to the IntList methods.
Also write an ObjListTestclass that creates an ObjList and puts various different kinds of objects in it (String,
array, etc) and then prints it.
Powered by