單鏈表和雙鏈表

單鏈表(可以用來實現(xiàn)棧和隊列)

    private class Node {
        /**
         * 鏈表存儲的數(shù)據(jù)(泛型)
         */
        Item item;
        /**
         * 指向下一個節(jié)點的指針
         */
        Node next;
    }

刪除鏈表的元素

image.png

添加元素

image.png

雙向鏈表(實現(xiàn)LinkedList)

  /**
     * 鏈表節(jié)點
     * @param <AnyType> 
     */
    private static class Node<AnyType> {
        /**
         * @param d 數(shù)據(jù)
         * @param p 上一個節(jié)點
         * @param n 下一個節(jié)點
         */
        public Node(AnyType d, Node<AnyType> p, Node<AnyType> n) {
            data = d;
            prev = p;
            next = n;
        }

        /**
         * 數(shù)據(jù)
         */
        public AnyType data;
        /**
         * 上一個節(jié)點
         */
        public Node<AnyType> prev;
        /**
         * 下一個節(jié)點
         */
        public Node<AnyType> next;
    }
image.png

添加元素

image.png

    /**
     * 向目標(biāo)元素p之前插入x
     *
     * @param p 目標(biāo)p
     * @param x 插入的元素
     */
    private void addBefore(Node<AnyType> p, AnyType x) {
        /*構(gòu)建一個新node,prev是p.prev,next是p  1,3*/
        Node<AnyType> newNode = new Node<>(x, p.prev, p);
        /*新node的上一個節(jié)點的next 指向自己 2*/
        newNode.prev.next = newNode;
        /*p的prev 指向自己 4*/
        p.prev = newNode;
        theSize++;
        modCount++;

    }

刪除元素

image.png
    /**
     * 刪除目標(biāo)節(jié)點
     *
     * @param p 目標(biāo)節(jié)點
     * @return 刪除的數(shù)據(jù)
     */
    private AnyType remove(Node<AnyType> p) {
        p.next.prev = p.prev;
        p.prev.next = p.next;
        theSize--;
        modCount++;
        return p.data;
    }
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 最近在復(fù)習(xí)數(shù)據(jù)結(jié)構(gòu)時,感觸頗深。 推薦程序員們有時間都可以復(fù)習(xí)下, 數(shù)據(jù)結(jié)構(gòu)不僅僅是一門課程, 它更能理清我們開發(fā)...
    Bobby0322閱讀 3,257評論 0 4
  • 棧 棧的英文單詞是Stack,它代表一種特殊的線性表,這種線性表只能在固定一端(通常認(rèn)為是線性表的尾端)進(jìn)行插入,...
    Jack921閱讀 1,623評論 0 5
  • LinkedList 源碼分析 由于最近工作有點忙,進(jìn)行了 APP 的部分優(yōu)化,期間也學(xué)習(xí)了很多有關(guān)于布局優(yōu)化和其...
    醒著的碼者閱讀 691評論 1 6
  • 文/龍偉平 我的朋友圈可真像個動物園啊。 西藏牦牛哥曬出練了半年的胸肌,天吶,目測有G罩杯,聽朋友說他女朋友的胸比...
    龍偉平的故事屋閱讀 419評論 0 5
  • 曾經(jīng),最想得到愛的時刻,發(fā)過瘋,失過心,受過傷,自虐自慚,暗自發(fā)誓要學(xué)會一切,成為最好的樣子,讓不愛你的人后悔???..
    海魚戀閱讀 322評論 0 0

友情鏈接更多精彩內(nèi)容