老熟女激烈的高潮_日韩一级黄色录像_亚洲1区2区3区视频_精品少妇一区二区三区在线播放_国产欧美日产久久_午夜福利精品导航凹凸

重慶分公司,新征程啟航

為企業提供網站建設、域名注冊、服務器等服務

如何對java鏈表進行增、刪、查、改操作-創新互聯

如何對java鏈表進行增、刪、查、改操作?針對這個問題,今天小編總結了這篇文章,希望能幫助更多想解決這個問題的朋友找到更加簡單易行的辦法。

創新互聯建站專注于桑植企業網站建設,響應式網站建設,購物商城網站建設。桑植網站建設公司,為桑植等地區提供建站服務。全流程按需求定制開發,專業設計,全程項目跟蹤,創新互聯建站專業和態度為您提供的服務

鏈表也是一個線性的數據結構,與數組不同的是,鏈表在內存中的存儲方式是隨機存儲。

下面給出涵蓋鏈表四個操作的一個完整的例子,有幾點需要注意的是:

(一)在增刪改查之前,都需要對給出的下標進行邊界判斷;

(二)增加一個名為last的節點,可以方便在鏈表的尾部進行操作,省去了查找到最后一個節點的時間復雜度;

(三)在鏈表的內部插入元素時,我們先找到要插入位置的前一個節點prevNode,然后可以記錄下prevNode的next,插入時先將prevNode的next指向要插入的節點,再將要插入的節點的next指向當前的next。這一點和C++中的操作也略有不同;

(四)刪除節點時,用removedNode來記錄刪除節點的返回值,并且不要忘了size要減1。

操作示例如下:

public class MyLinkedList {
    //定義一個靜態的內部類
    private static class Node{
        int data;
        Node next;
        Node(int data){
            this.data = data;
        }
    }
 
    private Node head;
    private Node last;//為了方便尾部插入元素的操作
    private int size;//size表示鏈表的實際長度
 
    public void insert(int data, int index)throws Exception{
        if(index < 0 || index > size)
            throw new IndexOutOfBoundsException("超出鏈表節點范圍!");
        Node insertedNode = new Node(data);
        if(size == 0){//插入第一個元素時元素個數為0
            head = insertedNode;
            last = insertedNode;
        }else if(size == index){//在鏈表的末尾插入
            last.next = insertedNode;
            last = insertedNode;
        }else{
            Node prevNode = get(index - 1);
            Node nextNode = prevNode.next;
            prevNode.next = insertedNode;
            insertedNode.next = nextNode;
        }
        size++;
    }
 
    public void update(int data, int index) throws Exception{
        if(index < 0 || index >= size)
            throw new IndexOutOfBoundsException("超出鏈表節點范圍!");
        if(index == 0)
            head.data = data;
        else if(index == size - 1)
            last.data = data;
        else{
            Node temp = get(index);
            temp.data = data;
        }
    }
 
    public Node remove(int index) throws Exception {
        if(index < 0 || index >= size){
            throw new IndexOutOfBoundsException("超出鏈表節點范圍!");
        }
        Node removedNode = null;//不給removedNode分配堆內存
        if(index == 0){
            removedNode = head;
            head = head.next;
        }
        else if(index == size - 1){
            //刪除尾結點
            Node prevNode = get(index - 1);
            removedNode = prevNode.next;
            prevNode.next = null;
            last = prevNode;
        }
        else{
            Node prevNode = get(index - 1);
            Node nextNode = prevNode.next.next;
            removedNode = prevNode.next;
            prevNode.next = nextNode;
        }
        size--;
        return removedNode;
    }
 
 
 
    //查找鏈表元素
    public Node get(int index) throws Exception{
        if(index < 0 || index >= size){
            throw new IndexOutOfBoundsException("超出鏈表節點范圍!");
        }
        Node temp = head;
        for(int i = 0; i < index; i++){
            temp = temp.next;
        }
//        size--;
        return temp;
    }
 
    //輸出鏈表
    public void output(){
        Node temp = head;
        while(temp != null){
            System.out.println(temp.data);
            temp = temp.next;
        }
    }
 
    public static void main(String[] args) throws Exception{
        MyLinkedList myLinkedList = new MyLinkedList();
        myLinkedList.insert(3,0);
        myLinkedList.insert(7,1);
        myLinkedList.insert(9,2);
        myLinkedList.insert(5,3);
        myLinkedList.insert(6,1);
        myLinkedList.remove(0);
        myLinkedList.update(2,1);
        myLinkedList.output();
        System.out.println(myLinkedList.size);
    }
}

關于對java鏈表進行增、刪、查、改操作的方法就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。


當前名稱:如何對java鏈表進行增、刪、查、改操作-創新互聯
URL網址:http://www.xueling.net.cn/article/dhshco.html

其他資訊

在線咨詢
服務熱線
服務熱線:028-86922220
TOP
主站蜘蛛池模板: 狠狠躁夜夜躁人人爽天天2020 | 日韩毛片久久久 | 又黄又网站国产 | 久久99精品久久久噜噜最新章节 | 亚洲视频网站在线 | 国内精品在线看 | 色花av | a视频免费观看 | 国产女优在线观看 | 丰满人妻被两个按摩师 | 国产婷婷色综合av蜜臀av | japanese在线看| 国产1区在线 | 超碰97人人做人人爱2020 | 国产小嫩模无套中出 | 国产精品又又酱在线午夜 | 亚洲熟女一区二区三区 | 91极品反差在线 | 伊人大杳焦在久久综合网 | 欧美日韩国产超高清免费看片 | 国产精品久久久久9999无码 | 欧美色视频网站 | 最新日韩在线观看视频 | 免费高清视频一区二区三区 | 国产sm免费视频专区 | 麻豆av观看| 日射精情感性色视频 | 亚洲成AV人在线视达达兔 | 豪放的女大兵在线观看 | 日本高清视频WWW夜色资源 | 中文字幕1区2区3区 日本道最新高清不卡二区 欧美疯狂做受XXXXX高潮 | 一区二区国产精品视频 | 亚州中文字幕在线观看 | 国产精品日本一区二区三区在线 | x8x8拨牐拨牐x8免费视频8午夜 | 国产不卡片 | av在线播放观看 | 99久久99久久 | 日韩国产在线 | 日韩午夜在线播放 | 久久九九全国免费精品观看 |