import java.io.PrintWriter;
import java.io.BufferedReader;
import java.io.InputStreamReader;

/**
 * Some experiments to better understand linked lists
 */
public class TestYDLLI
{
  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("a");
    ll.addToEnd("b");
    ll.addToEnd("c");
    screen.println("List is " + ll);
    ListIterator it = ll.newIterator();
    screen.println("The iterator is now at " + it.current());
    it.advance();
    screen.println("After advancing, iterator is now at " + it.current());
    it.delete();
    screen.println("After deletion, list is " + ll);
    screen.println("The iterator is now at " + it.current());
    it.insertBefore("x");
    screen.println("After inserting x, list is " + ll);
    it.delete();
    screen.println("After deletion, list is " + ll);
    // screen.println("The iterator is now at " + it.current());
    // That's it, we're done.
    System.exit(0);
  } // main(String[])

} // class TestYDLLI

