/** * Write a description of class SingleLinkedList here. * * @author John Paxton * @version 1.0 */ public class SingleLinkedList implements MyListInterface { public void print() { Node current = dummyHeader.getNext(); System.out.println("--------- print forward --------------"); while (current != dummyTrailer) { System.out.println(current.getData()); current = current.getNext(); } System.out.println("--------------------------------------"); } /** * To be completed as part of in lab 5. * pre: The list is set up correctly. * post: The list is printed from back to front, omitting any dummy nodes. */ public void printReverse() { System.out.println("--------- print backwards -------------"); System.out.println("---------------------------------------"); } /** * To be completed as part of in lab 5. * pre: The list is in ascending sorted order. * post: The list is still in ascending sorted order, "data" is added. */ public void insert (Object data) { System.out.println("Attempting to insert " + data + " into a sorted list"); } public boolean insert (Object data, int position) { System.out.println("Attempting to insert " + data + " at position " + position); if ((position < 0) || (position > size)) { return false; } else { Node before = dummyHeader; Node after = before.getNext(); int count = 0; Node toInsert = new Node(); toInsert.setData(data); while (count < position) { before = after; after = after.getNext(); count++; } before.setNext(toInsert); toInsert.setNext(after); size++; return true; } } public Object remove (int position) { System.out.println("Attempting to remove at position: " + position); if ((position < 0) || (position >= size)) { return null; } else { Node trailer = dummyHeader; Node current = trailer.getNext(); int count = 0; while (position != count) { trailer = current; current = current.getNext(); count++; } size--; trailer.setNext(current.getNext()); return current.getData(); } } public void makeEmpty() { dummyHeader = new Node(); dummyTrailer = new Node(); dummyHeader.setNext(dummyTrailer); dummyTrailer.setNext(null); size = 0; } private Node dummyHeader; private Node dummyTrailer; private int size; }