need assistance | Newbie | | Join Date: Oct 2006
Posts: 28
| |
I need a help with the program to test the insertion, deletion, search, copyList, and the copy constructor operations for an object in the class UnorderedLinkedList.
These are my classes: - public class UnorderedLinkedList extends LinkedListClass
-
{
-
-
public UnorderedLinkedList()
-
{
-
super();
-
}
-
-
public UnorderedLinkedList(UnorderedLinkedList otherList)
-
{
-
super(otherList);
-
}
-
-
//Method to determine whether searchItem is in
-
//the list.
-
//Postcondition: Returns true if searchItem is found
-
// in the list; false otherwise.
-
public boolean search(DataElement searchItem)
-
{
-
LinkedListNode current; //variable to traverse the list
-
boolean found;
-
-
current = first; //set current to point to the first
-
//node in the list
-
-
found = false; //set found to false
-
-
while(current != null && !found) //search the list
-
if(current.info.equals(searchItem)) //item is found
-
found = true;
-
else
-
current = current.link; //make current point to
-
//the next node
-
return found;
-
}
-
-
-
//Method to delete deleteItem from the list.
-
//Postcondition: If found, the node containing
-
// deleteItem is deleted from the
-
// list. Also first points to the first
-
// node, last points to the last
-
// node of the updated list, and count
-
// is decremented by 1.
-
public void deleteNode(DataElement deleteItem)
-
{
-
LinkedListNode current; //variable to traverse the list
-
LinkedListNode trailCurrent; //variable just before current
-
boolean found;
-
-
if(first == null) //Case 1; the list is empty
-
System.err.println("Cannot delete from an empty list.");
-
else
-
{
-
if(first.info.equals(deleteItem)) //Case 2
-
{
-
first = first.link;
-
-
if(first == null) //the list had only one node
-
last = null;
-
count--;
-
}
-
else //search the list for the node with the given info
-
{
-
found = false;
-
trailCurrent = first; //set trailCurrent to point to
-
//the first node
-
current = first.link; //set current to point to the
-
//second node
-
-
while(current != null && !found)
-
{
-
if(current.info.equals(deleteItem))
-
found = true;
-
else
-
{
-
trailCurrent = current;
-
current = current.link;
-
}
-
}//end while
-
-
if(found) //Case 3; if found, delete the node
-
{
-
count--;
-
trailCurrent.link = current.link;
-
-
if(last == current) //node to be deleted was
-
//the last node
-
last = trailCurrent; //update the value of last
-
}
-
else
-
System.out.println("Item to be deleted is "
-
+ "not in the list.");
-
}//end else
-
}//end else
-
}//end deleteNode
-
}
- public abstract class LinkedListClass
-
{
-
protected class LinkedListNode
-
{
-
DataElement info;
-
LinkedListNode link;
-
}
-
-
protected LinkedListNode first; //variable to store the
-
//address of the first
-
//node of the list
-
protected LinkedListNode last; //variable to store the
-
//address of the last
-
//node of the list
-
protected int count; //variable to store the number of nodes
-
//in the list
-
-
-
//default constructor
-
//Initializes the list to an empty state.
-
//Postcondition: first = null, last = null,
-
// count = 0
-
public LinkedListClass()
-
{
-
first = null;
-
last = null;
-
count = 0;
-
}
-
-
//Method to determine whether the list is empty.
-
//Postcondition: Returns true if the list is empty;
-
// false otherwise.
-
public boolean isEmptyList()
-
{
-
return (first == null);
-
}
-
-
//Method to initialize the list to an empty state.
-
//Postcondition: first = null, last = null,
-
// count = 0
-
public void initializeList()
-
{
-
first = null;
-
last = null;
-
count = 0;
-
}
-
-
//Method to output the data contained in each node.
-
public void print()
-
{
-
LinkedListNode current; //variable to traverse the list
-
-
current = first; //set current so that it points to
-
//the first node
-
while(current != null) //while more data to print
-
{
-
System.out.print(current.info + " ");
-
current = current.link;
-
}
-
}//end print
-
-
//Method to return the number of nodes in the list.
-
//Postcondition: The value of count is returned.
-
public int length()
-
{
-
return count;
-
}
-
-
-
//Method to return a reference of the object containing
-
//the data of the first node of the list.
-
//Precondition: The list must exist and must not be empty.
-
//Postcondition: The reference of the object that
-
// contains the info of the first node
-
// is returned.
-
public DataElement front()
-
{
-
DataElement temp = first.info.getCopy();
-
return temp;
-
}
-
-
//Method to return a reference of object containing
-
//the data of the last node of the list.
-
//Precondition: The list must exist and must not be empty.
-
//Postcondition: The reference of the object that
-
// contains the info of the last node
-
// is returned.
-
public DataElement back()
-
{
-
DataElement temp = last.info.getCopy();
-
return temp;
-
}
-
-
//Method to determine whether searchItem is in the list.
-
//Postcondition: Returns true if searchItem is found
-
// in the list; false otherwise.
-
public abstract boolean search(DataElement searchItem);
-
-
-
//Method to insert newItem in the list.
-
//Postcondition: first points to the new list
-
// and newItem is inserted at the
-
// beginning of the list. Also,
-
// last points to the last node and
-
// count is incremented by 1.
-
public void insertFirst(DataElement newItem)
-
{
-
LinkedListNode newNode; //variable to create the
-
//new node
-
-
newNode = new LinkedListNode(); //create the new node
-
newNode.info = newItem.getCopy(); //assign a copy of
-
//newItem to the node
-
newNode.link = first; //insert newNode before first
-
first = newNode; //make first point to the
-
//actual first node
-
-
if(last == null) //if the list was empty, newNode is
-
//also the last node in the list
-
last = newNode;
-
-
count++;
-
}
-
-
//Method to insert newItem at the end of the list.
-
//Postcondition: first points to the new list and
-
// newItem is inserted at the end
-
// of the list. Also, last points to
-
// the last node and
-
// count is incremented by 1.
-
public void insertLast(DataElement newItem)
-
{
-
LinkedListNode newNode; //variable to create the new node
-
-
newNode = new LinkedListNode(); //create the new node
-
newNode.info = newItem.getCopy(); //assign a copy of
-
//newItem to the node
-
newNode.link = null; //set the link field of
-
//newNode to null
-
-
if(first == null) //if the list is empty, newNode is
-
//both the first and last node
-
{
-
first = newNode;
-
last = newNode;
-
}
-
else //if the list is not empty, insert newNode after last
-
{
-
last.link = newNode; //insert newNode after last
-
last = newNode; //set last to point to the actual last node
-
}
-
-
count++;
-
}//end insertLast
-
-
-
-
//Method to delete deleteItem from the list.
-
//Postcondition: If found, the node containing
-
// deleteItem is deleted from the
-
// list. Also first points to the first
-
// node, last points to the last
-
// node of the updated list, and count
-
// is decremented by 1.
-
public abstract void deleteNode(DataElement deleteItem);
-
-
//Method to return a reference of the copy of otherList.
-
private void copy(LinkedListClass otherList)
-
{
-
LinkedListNode newNode; //variable to create a node
-
LinkedListNode current; //variable to traverse the list
-
-
first = null; //make this list empty
-
-
if(otherList.first == null) //otherList is empty
-
{
-
first = null;
-
last = null;
-
count = 0;
-
}
-
else
-
{
-
count = otherList.count;
-
current = otherList.first; //current points to the
-
//list to be copied
-
-
//copy the first element
-
first = new LinkedListNode(); //create the node
-
first.info = current.info.getCopy(); //copy the info
-
first.link = null; //set the link field of
-
//the node to null
-
last = first; //make last point to the first node
-
current = current.link; //make current point to the next
-
//node of the list being copied
-
-
//copy the remaining list
-
while(current != null)
-
{
-
newNode = new LinkedListNode();
-
newNode.info = current.info.getCopy();
-
newNode.link = null;
-
last.link = newNode;
-
last = newNode;
-
current = current.link;
-
}//end while
-
}//end else
-
}//end copy
-
-
-
//Method to return a reference of the copy of otherList.
-
public void copyList(LinkedListClass otherList)
-
{
-
if(this != otherList) //avoid self-copy
-
copy(otherList);
-
}
-
-
//copy constructor
-
public LinkedListClass(LinkedListClass otherList)
-
{
-
copy(otherList);
-
}//end copy constructor
-
}
- import java.io.*;
-
import java.util.*;
-
-
public class TestProgUnorderedLinkedList
-
{
-
static BufferedReader keyboard = new
-
BufferedReader(new InputStreamReader(System.in));
-
-
public static void main(String[] args) throws IOException
-
{
-
UnorderedLinkedList list
-
= new UnorderedLinkedList();
-
UnorderedLinkedList tempList =
-
new UnorderedLinkedList();
-
IntElement num = new IntElement();
-
-
StringTokenizer tokenizer;
-
-
int position;
-
-
System.out.print(" Enter 8 integers on the " + "same line: ");
-
System.out.flush();
-
-
tokenizer = new
-
StringTokenizer(keyboard.readLine());
-
-
num.setNum(Integer.parseInt(tokenizer.nextToken()) );
-
-
while (tokenizer.hasMoreTokens())
-
{
-
num.setNum(Integer.parseInt(tokenizer.nextToken()) );
-
list.insertLast(num);
-
}
-
-
System.out.println();
-
System.out.print("The list you " + "entered is: ");
-
list.print();
-
System.out.println();
-
System.out.println("Length of list: " + list.length());
-
-
tempList.copyList(list);
-
-
System.out.print("Enter the num to " + "be deleted: ");
-
System.out.flush();
-
num.setNum(Integer.parseInt(keyboard.readLine()));
-
System.out.println();
-
-
tempList.deleteNode(num);
-
System.out.println("After deleting " + num + " the node, tempList:");
-
tempList.print();
-
System.out.println();
-
System.out.println("Length of list: " + tempList.length());
-
-
System.out.print("Enter the search " + "item: ");
-
System.out.flush();
-
-
num.setNum(Integer.parseInt(keyboard.readLine()));
-
System.out.println();
-
-
if(tempList.search(num) != -1)
-
System.out.println("Item found in " + "the list");
-
else
-
System.out.println("Item not found");
-
-
System.out.print("The list temp: ");
-
tempList.print();
-
System.out.println();
-
System.out.println("Length of list: " + tempList.length());
-
}
-
}
|  | | | | /bytes/about
We are a network of experts and professionals in IT and software development that help one another with answers to tough questions and share insights.
Get the best answers to your questions from over 226,295 network members.
|