单向链表

public class Link {
  public long data;
  public Link next;

  public Link(long data) {
    this.data = data;
  }

  public void displayLink() {
    System.out.print("[" + data + "]");
  }
}

 

public class LinkList {
  private Link frist;

  public LinkList() {
    frist = null;
  }

  public boolean isEmpty() {
    return frist == null ? true : false;
  }

  public void insertFrist(long data) {
    Link newLink = new Link(data);
    newLink.next = frist;
    frist = newLink;
  }

  public Link deleteFrist() {
    Link temp = frist;
    frist = frist.next;
    return temp;
  }

  public void displayLinkList() {
    Link current = frist;
    while (current != null) {
      current.displayLink();
      current = current.next;
    }
  }

  public Link find(long key) {
    Link current = frist;
    while (current.data != key) {
      if (current.next != null) {
        current = current.next;
      } else {
        return null;
      }
    }
    return current;
  }

  public Link delete(long key) {
    Link current = frist;
    Link previous = frist;
    while (current.data != key) {
      if (current.next != null) {
        previous = current;
        current = current.next;
      } else {
        return null;
      }
    }
    if (current == frist) {
      frist = frist.next;
    } else {
      previous.next = current.next;
    }
    return current;
  }
}

posted @ 2015-08-13 23:27  studyForAndroid  阅读(185)  评论(0)    收藏  举报