java实现单链表_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > java实现单链表

java实现单链表

 2013/9/13 3:52:35  sweetts  程序员俱乐部  我要评论(0)
  • 摘要:packageLinkList;publicclassNode{publicObjectdata;publicNodenext;publicNode(){this.data=null;this.next=null;}}packageLinkList;publicclassLinkList{publicNodehead;publicintlength;publicLinkList(){head=newNode();//初始化头节点,否则会报空指针异常length=0;
  • 标签:实现 单链表 Java
package LinkList;

public class Node {
      public Object data;
      public Node next;
     public Node(){
    this.data=null;
    this.next=null;
     }
    
}


package LinkList;

public class LinkList {
     public Node head;
     public int length;
    
     public LinkList(){
    head=new Node();  //初始化头节点,否则会报空指针异常
    length=0;
     }
    
     public void headAdd(Object obj){ //从头部插入节点
          Node node =new Node();   //新建一个节点,存放待插入的数据
          node.data=obj;
          node.next=head.next;
          head.next=node;
          length++;
   
     }
    
     public void tailAdd(Object obj){  //从末尾插入节点
    // Node current=head.next;  //如果用的是这行,那么在链表里没有节点时插入会有空指针异常。
    Node current=head;
    while(current.next!=null){   //找到末尾的节点
    current=current.next;
    }
   
    Node node=new Node();
    node.data=obj;
    node.next=current.next;
    current.next=node;
    length++;
     }
    
     public void display(){  //输出链表
    Node current=head.next;
    System.out.print("the  " +length+" elements is:");
         while(current!=null){
    System.out.print(current.data+"  ");
    current=current.next;
    }
     }
    
     public void delete(Object obj){   //根据值删除节点
    Node current=head;
    while(current.next.data!=obj){ //找到待删除节点的前一个节点
    current=current.next;
    }
    current.next=current.next.next;
    length--;
   
     }
    
     public Object get(int pos){
    if(pos<1||pos>length){  //位置不合法
    return false;
    }else{
    Node node=head.next;
    int i=1;
    while(i<pos){
    node=node.next;
    i++;
    }
    return node.data;
    }
     }
     public static void main(String[] args) {
LinkList ll=new LinkList();
        ll.tailAdd(4);
        ll.headAdd(3);
        ll.headAdd(2);
      //  ll.delete(3);
        ll.headAdd(1);
        ll.tailAdd(5);
        for(int i=6;i<50;i++)
        {
        ll.headAdd(i);
        }
        ll.display();
        System.out.println();
        System.out.println("the third element is:   "+ll.get(3));
       
}
}
发表评论
用户名: 匿名