论坛首页 Java企业应用论坛

java数据结构(链表)

浏览 2133 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2011-11-06  
/* 
 * 链结点,相当于是车厢 
 */ 
public class Node { 
    //数据域 
    public long data; 
    //指针域 
    public Node next; 
     
    public Node(long value) { 
        this.data = value; 
    } 
     
    /** 
     * 显示方法 
     */ 
    public void display() { 
        System.out.print(data + " "); 
    } 
}



/* 
 * 链表,相当于火车 
 */ 
public class LinkList { 
    //头结点 
    private Node first; 
     
    public LinkList() { 
        first = null; 
    } 
     
    /** 
     * 插入一个结点,在头结点后进行插入 
     */ 
    public void insertFirst(long value) { 
        Node node = new Node(value); 
        node.next = first; 
        first = node; 
    } 
     
    /** 
     * 删除一个结点,在头结点后进行删除 
     */ 
    public Node deleteFirst() { 
        Node tmp = first; 
        first = tmp.next; 
        return tmp; 
    } 
     
    /** 
     * 显示方法 
     */ 
    public void display() { 
        Node current = first; 
        while(current != null) { 
            current.display(); 
            current = current.next; 
        } 
        System.out.println(); 
    } 
     
    /** 
     * 查找方法 
     */ 
    public Node find(long value) { 
        Node current = first; 
        while(current.data != value) { 
            if(current.next == null) { 
                return null; 
            } 
            current = current.next; 
        } 
        return current; 
    } 
     
    /** 
     * 删除方法,根据数据域来进行删除 
     */ 
    public Node delete(long value) { 
        Node current = first; 
        Node previous = first; 
        while(current.data != value) { 
            if(current.next == null) { 
                return null; 
            } 
            previous = current; 
            current = current.next; 
        } 
         
        if(current == first) { 
            first = first.next; 
        } else { 
            previous.next = current.next; 
        } 
        return current; 
         
    } 
}


测试
public class TestLinkList { 
    public static void main(String[] args) { 
        LinkList linkList = new LinkList(); 
        linkList.insertFirst(34); 
        linkList.insertFirst(23); 
        linkList.insertFirst(12); 
        linkList.insertFirst(0); 
        linkList.insertFirst(-1); 
         
//      linkList.display(); 
//       
//      linkList.deleteFirst(); 
//      linkList.display(); 
//       
//      Node node = linkList.find(23); 
//      node.display(); 
         
        Node node1 = linkList.delete(0); 
        node1.display(); 
        System.out.println(); 
        linkList.display(); 
    } 
}
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics