91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

java中鏈表的實例

發布時間:2020-11-13 12:28:33 來源:億速云 閱讀:145 作者:小新 欄目:編程語言

這篇文章主要介紹java中鏈表的實例,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

LinkedList使用了循環雙向鏈表數據結構。與基于數組ArrayList相比,這是兩種截然不同的實現技術,這也決定了它們將適用于完全不同的工作場景。

鏈表(Linked list)是一種常見的基礎數據結構,是一種線性表,但是并不會按線性的順序存儲數據,而是在每一個節點里存到下一個節點的指針(Pointer)。

使用鏈表結構可以克服數組鏈表需要預先知道數據大小的缺點,鏈表結構可以充分利用計算機內存空間,實現靈活的內存動態管理。但是鏈表失去了數組隨機讀取的優點,同時鏈表由于增加了結點的指針域,空間開銷比較大。

實例:

package com.ys.link;

public class DoublePointLinkedList {
    private Node head;//頭節點
    private Node tail;//尾節點
    private int size;//節點的個數
    
    private class Node{
        private Object data;
        private Node next;
        
        public Node(Object data){
            this.data = data;
        }
    }
    
    public DoublePointLinkedList(){
        size = 0;
        head = null;
        tail = null;
    }
    
    //鏈表頭新增節點
    public void addHead(Object data){
        Node node = new Node(data);
        if(size == 0){//如果鏈表為空,那么頭節點和尾節點都是該新增節點
            head = node;
            tail = node;
            size++;
        }else{
            node.next = head;
            head = node;
            size++;
        }
    }
    
    //鏈表尾新增節點
    public void addTail(Object data){
        Node node = new Node(data);
        if(size == 0){//如果鏈表為空,那么頭節點和尾節點都是該新增節點
            head = node;
            tail = node;
            size++;
        }else{
            tail.next = node;
            tail = node;
            size++;
        }
    }
    
    //刪除頭部節點,成功返回true,失敗返回false
    public boolean deleteHead(){
        if(size == 0){//當前鏈表節點數為0
            return false;
        }
        if(head.next == null){//當前鏈表節點數為1
            head = null;
            tail = null;
        }else{
            head = head.next;
        }
        size--;
        return true;
    }
    //判斷是否為空
    public boolean isEmpty(){
        return (size ==0);
    }
    //獲得鏈表的節點個數
    public int getSize(){
        return size;
    }
    
    //顯示節點信息
    public void display(){
        if(size >0){
            Node node = head;
            int tempSize = size;
            if(tempSize == 1){//當前鏈表只有一個節點
                System.out.println("["+node.data+"]");
                return;
            }
            while(tempSize>0){
                if(node.equals(head)){
                    System.out.print("["+node.data+"->");
                }else if(node.next == null){
                    System.out.print(node.data+"]");
                }else{
                    System.out.print(node.data+"->");
                }
                node = node.next;
                tempSize--;
            }
            System.out.println();
        }else{//如果鏈表一個節點都沒有,直接打印[]
            System.out.println("[]");
        }
    }

}

以上是java中鏈表的實例的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

习水县| 东港市| 南城县| 广平县| 龙泉市| 铅山县| 土默特右旗| 舟山市| 翁牛特旗| 阿尔山市| 和龙市| 法库县| 西和县| 楚雄市| 利川市| 抚顺县| 德江县| 棋牌| 衡阳市| 克什克腾旗| 阿图什市| 荥阳市| 二手房| 永康市| 遂宁市| 北碚区| 南华县| 江川县| 昭苏县| 西藏| 花莲县| 儋州市| 咸丰县| 梁山县| 郎溪县| 铁岭县| 涪陵区| 孙吴县| 巴塘县| 虎林市| 鹿邑县|