package link;

public class LinkList {

    
  private Link first;
    
  public void LinkList(){
    
    first = null;
  }
    
  public boolean isEmpty(){
    
    return first == null;
  }
    
    
  public void insertFirst(int id, double dd){
    Link newLink = new Link(id,dd);
    
    newLink.next = first;    
    first = newLink;
    /*
     * first = newLink;    这样会陷入死循环
     * newLink.next = first;    
     */

    
  }
    
  public Link deleteFirst(){
    
    Link temp = first;
    first = first.next;    
    return temp;
  }
    
    
  public void displayList(){
    Link current    = first;
    
    while(current != null){
      current.displayLink();
      current =current.next;
    }
  }
    
  public Link find2(int key){
    Link current    = first;
    
    while(current.next != null){
      if(current.iData == key)
        return current;
      else
        current = current.next;
    }
    if(current.iData == key){
      return current;
    }
    return null;
  }
    
    
  public Link find( int key){
    Link current = first;
    while(current.iData != key){
      if(current.next ==null)
        return null;        
      else{
        current = current.next;
      }
    }
    return current;
  }
    
    
  public Link delete(int key){
    Link current = first;
    Link previous = first;
    
    while(current.iData != key){
      //最后,没有找到匹配的数据,返回
      if(current.next == null){
          return null;
      }
      else{
        //依次对链接点进行遍历,并记录前一个链接点
        previous = current;
        current =current.next;
      }
    }
    
    if(current == first){        
      first = first.next;
    }
    else{
      previous.next =current.next;
    }
    
    return current;
  }
  public static void main(String args[]){
    LinkList list =    new LinkList();
    
    list.insertFirst(11, 1.88);
    list.insertFirst(33, 3.88);
    list.insertFirst(44, 4.88);
    list.insertFirst(55, 5.88);
    list.insertFirst(66, 6.88);
    list.insertFirst(77, 7.88);
    
    list.delete(6).displayLink();
    //list.find(66).displayLink();
    //list.displayList();

    
  }
}