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

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

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

正文

試著用 java 來實(shí)現(xiàn)下鏈表,因?yàn)?java 沒有指針概念的緣故,用數(shù)組的下標(biāo)來代替指針,這樣一個(gè)靜態(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ū)域可存儲(chǔ)數(shù)據(jù)也可以不存儲(chǔ)數(shù)據(jù),只用來做向?qū)?我這里是存儲(chǔ)了數(shù)據(jù).
    class Node {
        public int next = -1;  //指針指向的后一個(gè)節(jié)點(diǎn)
        public int pre = -1;  //指針指向的前一個(gè)節(jié)點(diǎn)
        public long value = -1;  //節(jié)點(diǎn)的值
    }
    /**
     * 初始化鏈表空間,其實(shí)這個(gè)可以在實(shí)例化類的時(shí)候完成的.
     */
    public void init() {
        head = 0;
        for (int i = 0; i < MAX; i++) {
            node[i] = new Node();
            node[i].next = -1;  //為了簡(jiǎn)單的實(shí)現(xiàn)下,假設(shè)空值為-1
            node[i].pre = -1;
            node[i].value = -1;
        }
    }
    /**
     * 分配節(jié)點(diǎn)空間,類似于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é)點(diǎn)
     *
     * @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é)點(diǎn)被移除
        if (preNode < 0) {
            head = nextNode;
        } else {
            node[preNode].next = nextNode;
        }
    }
    /**
     * 插入節(jié)點(diǎn)
     *
     * @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;
    }
    /**
     * 測(cè)試下顯示這個(gè)鏈表
     */
    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)鏈表實(shí)現(xiàn)示例詳解的詳細(xì)內(nèi)容,更多關(guān)于java 靜態(tài)鏈表的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Java使用Poi導(dǎo)出Excel表格方法實(shí)例

    Java使用Poi導(dǎo)出Excel表格方法實(shí)例

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

    Java反射機(jī)制的講解

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

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

    獲取泛型符號(hào)E的Class對(duì)象的方法,1.反射方案利用匿名子類實(shí)例化,但該方法有特殊限制,2.反射方案2直接指定泛型類型,但不靈活,3.構(gòu)造方法方案在初始化時(shí)傳入泛型類,但有寫錯(cuò)風(fēng)險(xiǎn)
    2024-12-12
  • 新手初學(xué)Java數(shù)組

    新手初學(xué)Java數(shù)組

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

    Java中的堆和棧示例詳解

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

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

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

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

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

    SpringCloud+Nacos多服務(wù)多實(shí)例本地測(cè)試過程

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

    解決mybatis-plus-boot-starter與mybatis-spring-boot-starter的錯(cuò)誤問題

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

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

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

最新評(píng)論

营口市| 黄大仙区| 调兵山市| 浦东新区| 金溪县| 柯坪县| 青岛市| 苍溪县| 济南市| 丹江口市| 修武县| 古丈县| 香格里拉县| 南华县| 沙河市| 正宁县| 雷州市| 琼海市| 襄樊市| 色达县| 哈尔滨市| 横山县| 德安县| 屏东县| 沁阳市| 阳泉市| 龙海市| 通渭县| 大城县| 界首市| 荣成市| 醴陵市| 波密县| 镶黄旗| 外汇| 冷水江市| 镇坪县| 油尖旺区| 永清县| 桑日县| 同德县|