最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java 靜態(tài)鏈表實現(xiàn)示例詳解

 更新時間:2023年06月02日 14:18:33   作者:雨翔河  
這篇文章主要為大家介紹了java 靜態(tài)鏈表實現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

正文

試著用 java 來實現(xiàn)下鏈表,因為 java 沒有指針概念的緣故,用數(shù)組的下標來代替指針,這樣一個靜態(tài)鏈表就出來了。

靜態(tài)雙向不循環(huán)鏈表

public class Test {
    public static void main(String[] args) {
        L l = new L();
        l.init();
        l.insert(123);
        l.insert(456);
        l.insert(789);
        l.insert(222);
        int removeIndex = l.insert(333);
        l.show();
        l.removeNode(removeIndex);
        l.show();
        System.exit(0);
    }
}
/**
 * 靜態(tài)鏈表
 */
class L {
    private static final int MAX = 100;  //鏈表的最大容量
    private Node node[] = new Node[MAX];
    private int head;  //頭指針,頭指針區(qū)域可存儲數(shù)據(jù)也可以不存儲數(shù)據(jù),只用來做向導,我這里是存儲了數(shù)據(jù).
    class Node {
        public int next = -1;  //指針指向的后一個節(jié)點
        public int pre = -1;  //指針指向的前一個節(jié)點
        public long value = -1;  //節(jié)點的值
    }
    /**
     * 初始化鏈表空間,其實這個可以在實例化類的時候完成的.
     */
    public void init() {
        head = 0;
        for (int i = 0; i < MAX; i++) {
            node[i] = new Node();
            node[i].next = -1;  //為了簡單的實現(xiàn)下,假設空值為-1
            node[i].pre = -1;
            node[i].value = -1;
        }
    }
    /**
     * 分配節(jié)點空間,類似于c里的malloc
     *
     * @return int
     */
    public int malloc() {
        for (int i = 0; i < MAX; i++) {
            if (node[i].pre < 0 && node[i].next < 0 && node[i].value < 0) {
                return i;
            }
        }
        System.out.println("malloc fail ,full");
        return -1;
    }
    /**
     * 移除節(jié)點
     *
     * @param indexNode indexNode
     */
    public void removeNode(int indexNode) {
        if (indexNode < 0) {
            System.out.println("removeNode indexNode is error");
            return;
        }
        int preNode = node[indexNode].pre;
        int nextNode = node[indexNode].next;
        node[indexNode].pre = -1;
        node[indexNode].next = -1;
        node[indexNode].value = -1;
        if (nextNode >= 0) {
            node[nextNode].pre = preNode;
        }
        //頭節(jié)點被移除
        if (preNode < 0) {
            head = nextNode;
        } else {
            node[preNode].next = nextNode;
        }
    }
    /**
     * 插入節(jié)點
     *
     * @param v v
     */
    public int insert(long v) {
        int index = head;
        while (node[index].next >= 0) {
            index = node[index].next;
        }
        int insertNodeIndex = malloc();
        if (insertNodeIndex < 0) {
            System.out.println("malloc error,please check malloc function.");
            return -1;
        }
        node[insertNodeIndex].value = v;
        if (insertNodeIndex == head) {
            node[insertNodeIndex].pre = -1;
        } else {
            node[index].next = insertNodeIndex;
            node[insertNodeIndex].pre = index;
        }
        return insertNodeIndex;
    }
    /**
     * 測試下顯示這個鏈表
     */
    public void show() {
        int index = head;
        System.out.println("show l:-------------------------");
        while (node[index].next >= 0) {
            System.out.println(node[index].value);
            index = node[index].next;
        }
        System.out.println(node[index].value);
        System.out.println("show l end:-----------------------");
        System.out.println("test show l start:_______________");
        while (node[index].pre >= 0) {
            System.out.println(node[index].value);
            index = node[index].pre;
        }
        System.out.println(node[index].value);
        System.out.println("test show l end:_______________");
    }
}

以上就是java 靜態(tài)鏈表實現(xiàn)示例詳解的詳細內(nèi)容,更多關于java 靜態(tài)鏈表的資料請關注腳本之家其它相關文章!

相關文章

  • Java使用Poi導出Excel表格方法實例

    Java使用Poi導出Excel表格方法實例

    這篇文章主要給大家介紹了關于Java使用Poi導出Excel表格的相關資料,Java POI是一個用于操作Microsoft Office格式的Java API庫,可以使用它來導出Excel文件,需要的朋友可以參考下
    2023-10-10
  • Java反射機制的講解

    Java反射機制的講解

    今天小編就為大家分享一篇關于Java反射機制的講解,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-04-04
  • Java如何獲得泛型類中的泛型類型T.class

    Java如何獲得泛型類中的泛型類型T.class

    獲取泛型符號E的Class對象的方法,1.反射方案利用匿名子類實例化,但該方法有特殊限制,2.反射方案2直接指定泛型類型,但不靈活,3.構造方法方案在初始化時傳入泛型類,但有寫錯風險
    2024-12-12
  • 新手初學Java數(shù)組

    新手初學Java數(shù)組

    數(shù)組是相同類型數(shù)據(jù)的有序集合數(shù)組描述的是相同類型的若干個數(shù)據(jù),按照一定的先后次序排列組合而成。其中,每一個數(shù)據(jù)稱作一個數(shù)組元素,每個數(shù)組元素可以通過一個下標來訪問它們數(shù)組的聲明創(chuàng)建
    2021-07-07
  • Java中的堆和棧示例詳解

    Java中的堆和棧示例詳解

    在Java中,堆(Heap)和棧(Stack)是兩種不同的內(nèi)存區(qū)域,本文給大家介紹Java中的堆和棧,結合實例代碼給大家介紹的非常詳細,感興趣的朋友一起看看吧
    2025-09-09
  • springboot掃描引入jar包的service等組件方式

    springboot掃描引入jar包的service等組件方式

    這篇文章主要介紹了springboot掃描引入jar包的service等組件方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • j2Cache線上異常排查問題解決記錄分析

    j2Cache線上異常排查問題解決記錄分析

    這篇文章主要為大家介紹了關于j2Cache線上異常排查的問題解決記錄分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步
    2022-02-02
  • SpringCloud+Nacos多服務多實例本地測試過程

    SpringCloud+Nacos多服務多實例本地測試過程

    文章介紹了如何使用Nacos進行服務注冊與發(fā)現(xiàn),通過配置和啟動不同實例來實現(xiàn)服務的高可用性,并展示了如何在前端調用服務接口,確保系統(tǒng)的穩(wěn)定運行
    2026-02-02
  • 解決mybatis-plus-boot-starter與mybatis-spring-boot-starter的錯誤問題

    解決mybatis-plus-boot-starter與mybatis-spring-boot-starter的錯誤問題

    本文主要講述了在使用MyBatis和MyBatis-Plus時遇到的綁定異常問題,通過排查和總結,作者發(fā)現(xiàn)使用MyBatis-Plus?Boot?Starter可以解決這個問題,文章詳細對比了MyBatis-Plus?Boot?Starter和MyBatis?Spring?Boot?Starter的功能和使用場景
    2025-01-01
  • Java常用工具類匯總 附示例代碼

    Java常用工具類匯總 附示例代碼

    這篇文章主要介紹了Java常用工具類匯總 附示例代碼,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-04-04

最新評論

昌都县| 黄梅县| 施甸县| 巫溪县| 卓资县| 年辖:市辖区| 昌乐县| 仪陇县| 定西市| 新野县| 思南县| 墨江| 汕头市| 来凤县| 长阳| 文成县| 全椒县| 北碚区| 襄樊市| 洪雅县| 嘉定区| 灵丘县| 姚安县| 晋中市| 阿拉善盟| 南江县| 合江县| 于都县| 蒙城县| 沁水县| 镶黄旗| 乌兰察布市| 雅江县| 太仆寺旗| 珠海市| 和田县| 东乌珠穆沁旗| 泊头市| 泾源县| 曲麻莱县| 静乐县|