真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

java中鏈表的實(shí)例-創(chuàng)新互聯(lián)

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

成都創(chuàng)新互聯(lián)公司主營企業(yè)營銷型網(wǎng)站建設(shè),為眾多企業(yè)提供了品牌網(wǎng)站制作服務(wù),建網(wǎng)站哪家好?擁有多年的網(wǎng)絡(luò)營銷推廣流程,能夠?yàn)槠髽I(yè)定制化制作網(wǎng)站服務(wù),在公司網(wǎng)站建設(shè)維護(hù)方面成績(jī)突出。

LinkedList使用了循環(huán)雙向鏈表數(shù)據(jù)結(jié)構(gòu)。與基于數(shù)組ArrayList相比,這是兩種截然不同的實(shí)現(xiàn)技術(shù),這也決定了它們將適用于完全不同的工作場(chǎng)景。

鏈表(Linked list)是一種常見的基礎(chǔ)數(shù)據(jù)結(jié)構(gòu),是一種線性表,但是并不會(huì)按線性的順序存儲(chǔ)數(shù)據(jù),而是在每一個(gè)節(jié)點(diǎn)里存到下一個(gè)節(jié)點(diǎn)的指針(Pointer)。

使用鏈表結(jié)構(gòu)可以克服數(shù)組鏈表需要預(yù)先知道數(shù)據(jù)大小的缺點(diǎn),鏈表結(jié)構(gòu)可以充分利用計(jì)算機(jī)內(nèi)存空間,實(shí)現(xiàn)靈活的內(nèi)存動(dòng)態(tài)管理。但是鏈表失去了數(shù)組隨機(jī)讀取的優(yōu)點(diǎn),同時(shí)鏈表由于增加了結(jié)點(diǎn)的指針域,空間開銷比較大。

實(shí)例:

package com.ys.link;

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

}

以上是java中鏈表的實(shí)例的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!


網(wǎng)頁標(biāo)題:java中鏈表的實(shí)例-創(chuàng)新互聯(lián)
URL標(biāo)題:http://weahome.cn/article/dgpioo.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部