/////////////////////////linkedlist /****************************** * Week 2 lab - exercise 1: * * a simple LinkedList class * *******************************/ /** * Class implementing a linked list. */ public class LinkedList { private Node first; //dummy header node /** * Initializes the list to empty creating a dummy header node. */ public LinkedList() { first = new Node(); } /** * Determines whether the list is empty * * @return true if the list is empty, false otherwise */ public boolean isEmpty() { return (first.getNext() == null); } /** * Prints the list elements. */ public void display() { Node current = first.getNext(); while (current != null) { System.out.print(current.getInfo() + " "); current = current.getNext(); } System.out.println(); } /** * Adds the element x to the beginning of the list. * * @param x element to be added to the list */ public void add(int x) { Node p = new Node(); p.setInfo(x); p.setNext(first.getNext()); first.setNext(p); } /** * Deletes an item from the list. Only the first occurrence of the item in * the list will be removed. * * @param x element to be removed. */ public void remove(int x) { Node old = first.getNext(), p = first; //Finding the reference to the node before the one to be deleted boolean found = false; while (old != null && !found) { if (old.getInfo() == x) { found = true; } else { p = old; old = p.getNext(); } } //if x is in the list, remove it. if (found) { p.setNext(old.getNext()); } } } /////////////////////////////////////////////////////////////////////// node class /****************************** * Week 2 lab - exercise 1: * * a simple LinkedList class * *******************************/ /** * Linked list node. */ public class Node { private int info; //element stored in this node private Node next; //link to next node /** * Initializes this node setting info to 0 and next to null */ public Node() { info = 0; next = null; } /** * Sets the value for this node * * @param i the desired value for this node */ public void setInfo(int i) { info = i; } /** * Sets the link to the next node * * @param l node reference */ public void setNext(Node l) { next = l; } /** * Returns the value in this node * * @return the value in this node */ public int getInfo() { return info; } /** * Returns the link to the next node * * @return link to the next node */ public Node getNext() { return next; } } ///////////////////////////////////main /****************************** * Week 2 lab - exercise 1: * * a simple LinkedList class * *******************************/ public class Main { public static void main(String args[]) { LinkedList intList = new LinkedList(); System.out.print("List of numbers before list creation: "); for (int i =0; i < 10; i++) { int info = (int)(Math.random()*10); System.out.print(info + " "); intList.add(info); } System.out.print("\nList of numbers after list creation: "); intList.display(); } }