List Iterator : Link List : Collections Data Structure : Java examples (example source code) Organized by topic

Java
C++
PHP
Java Home »  Collections Data Structure   » [  Link List  ]  Screenshots 
 



List Iterator



import java.io.IOException;

public class ListIterator {
  private Link current; 

  private Link previous;

  private LinkList ourList;

  public ListIterator(LinkList list) {
    ourList = list;
    reset();
  }
  //   start at 'first'
  public void reset() {
    current = ourList.getFirst();
    previous = null;
  }

  public boolean atEnd() {
    return (current.next == null);
  }

  //   go to next link
  public void nextLink() {
    previous = current;
    current = current.next;
  }

  public Link getCurrent() {
    return current;
  }

  public void insertAfter(long dd) {
    Link newLink = new Link(dd);

    if (ourList.isEmpty()) {
      ourList.setFirst(newLink);
      current = newLink;
    else // not empty
    {
      newLink.next = current.next;
      current.next = newLink;
      nextLink()// point to new link
    }
  }

  public void insertBefore(long data) {
    Link newLink = new Link(data);
    if (previous == null) {
      newLink.next = ourList.getFirst();
      ourList.setFirst(newLink);
      reset();
    }// not beginning
    else {
      newLink.next = previous.next;
      previous.next = newLink;
      current = newLink;
    }
  }

  //   delete item at current
  public long deleteCurrent() {
    long value = current.dData;
    //     beginning of list
    if (previous == null) {
      ourList.setFirst(current.next);
      reset();
    }// not beginning
    else {
      previous.next = current.next;
      if (atEnd())
        reset();
      else
        current = current.next;
    }
    return value;
  }

  public static void main(String[] argsthrows IOException {
    LinkList theList = new LinkList()
    ListIterator iter1 = theList.getIterator()
    long value;

    iter1.insertAfter(20)
    iter1.insertAfter(40);
    iter1.insertAfter(80);
    iter1.insertBefore(60);

    if (!theList.isEmpty())
      theList.displayList();
    else
      System.out.println("List is empty");
  }
}

class LinkList {
  private Link first;

  public LinkList() {
    first = null;
  

  public Link getFirst() {
    return first;
  }

  public void setFirst(Link f) {
    first = f;
  }

  public boolean isEmpty() {
    return first == null;
  }

  public ListIterator getIterator() {
    return new ListIterator(this)
  }

  public void displayList() {

    Link current = first;

    while (current != null) {
      current.displayLink();
      current = current.next; 
    }
    System.out.println("");
  }

}

class Link {
  public long dData; 

  public Link next; 

  public Link(long dd) {
    dData = dd;
  }

  public void displayLink() {
    System.out.print(dData + " ");
  }
}



           
       
Related examples in the same category
1.  Redundancy Checker
2.  Making a stack from a LinkedList Making a stack from a LinkedList
3.  A Map implemented with ArrayLists
4.  Doubly-linked list with data structure Doubly-linked list with data structure
5.  Sorted list Sorted list
6.  List with first and last references List with first and last references
7.  Frist last list
8.  Another Link list
























Home| Contact Us
Copyright 2003 - 04 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.