import java.io.PrintWriter; import java.io.BufferedReader; import java.io.InputStreamReader; /** * Some experiments to better understand linked lists */ public class TestYDLL { public static void main(String[] args) throws Exception { // Prepare input and screenput. BufferedReader keyboard = new BufferedReader(new InputStreamReader(System.in)); PrintWriter screen = new PrintWriter(System.out, true); // Create a list for simple testing. YDLL ll = new YDLL(); ll.addToEnd("end"); screen.println("List is " + ll); screen.println("After deleting " + ll.removeFirst() + " the list is now " + ll + ". Its length is " + ll.length); ll.addToEnd("newend"); screen.println("After adding newend, the list is now " + ll + ". Its length is " + ll.length); // Create a list and print it out. YDLL lst = new YDLL(); screen.println(lst); for (int i = 9; i > 0; i--) { Object val = new Integer(i); screen.print("Adding " + val + " to front: "); lst.addToFront(val); screen.println(lst + ". I's length is " + lst.length); } for (int i = 0; i < 9; i++) { Object val = new Character((char) ('a' + i)); screen.print("Adding " + val + " to end: "); lst.addToEnd(val); screen.println(lst + ". Its length is " + lst.length); } // Remove a few lines for (int i = 0; i < 5; i++) { try { screen.println("Deleting first element ... " + lst.removeFirst()); screen.println(lst); } catch (Exception e) { screen.println("Deletion failed ... empty list."); } } // for // Remove a few lines using remove last for (int i = 0; i < 5; i++) { try { screen.println("Deleting last element ... " + lst.removeLast() + ". Its length is " + lst.length); screen.println(lst); } catch (Exception e) { screen.println("Deletion failed ... " + e + "."); } } // for // That's it, we're done. System.exit(0); } // main(String[]) } // class TestYDLL