国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Java中鏈表的實(shí)現(xiàn)(超詳細(xì))

這篇具有很好參考價(jià)值的文章主要介紹了Java中鏈表的實(shí)現(xiàn)(超詳細(xì))。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

????????在Java中,鏈表可以通過創(chuàng)建節(jié)點(diǎn)鏈接節(jié)點(diǎn)來實(shí)現(xiàn)。以下是一個(gè)簡單的鏈表實(shí)現(xiàn)示例:

public class LinkedList {
    Node head; // 頭結(jié)點(diǎn)

    // 節(jié)點(diǎn)類
    class Node {
        int data;
        Node next;

        Node(int d) {
            data = d;
            next = null;
        }
    }

    // 在鏈表頭部插入節(jié)點(diǎn)
    public void push(int new_data) {
        Node new_node = new Node(new_data);
        new_node.next = head;
        head = new_node;
    }

    // 在鏈表中間插入節(jié)點(diǎn)
    public void insertAfter(Node prev_node, int new_data) {
        if (prev_node == null) {
            System.out.println("The given previous node cannot be null");
            return;
        }
        Node new_node = new Node(new_data);
        new_node.next = prev_node.next;
        prev_node.next = new_node;
    }

    // 在鏈表尾部插入節(jié)點(diǎn)
    public void append(int new_data) {
        Node new_node = new Node(new_data);
        if (head == null) {
            head = new Node(new_data);
            return;
        }
        new_node.next = null;
        Node last = head;
        while (last.next != null)
            last = last.next;
        last.next = new_node;
        return;
    }

    // 刪除鏈表中的給定節(jié)點(diǎn)
    public void deleteNode(int key) {
        Node temp = head, prev = null;
        if (temp != null && temp.data == key) {
            head = temp.next;
            return;
        }
        while (temp != null && temp.data != key) {
            prev = temp;
            temp = temp.next;
        }
        if (temp == null)
            return;
        prev.next = temp.next;
    }

    // 打印鏈表
    public void printList() {
        Node tnode = head;
        while (tnode != null) {
            System.out.print(tnode.data + " ");
            tnode = tnode.next;
        }
    }

    // 測試
    public static void main(String[] args) {
        LinkedList list = new LinkedList();
        list.append(6);
        list.push(7);
        list.push(1);
        list.append(4);
        list.insertAfter(list.head.next, 8);

        System.out.println("Created Linked list is: ");
        list.printList();

        list.deleteNode(1);
        System.out.println("\nLinked List after Deletion of 1:");
        list.printList();
    }
}


輸出:

Created Linked list is:
1 7 8 6 4
Linked List after Deletion of 1:
7 8 6 4


????????在這個(gè)示例中,我們創(chuàng)建了一個(gè)?LinkedList?類,它包含一個(gè)?Node?類一些方法來操作鏈表。我們可以使用?push()?方法在鏈表的頭部插入節(jié)點(diǎn),使用?insertAfter()?方法在鏈表中間插入節(jié)點(diǎn),使用?append()?方法在鏈表尾部插入節(jié)點(diǎn),使用?deleteNode()?方法刪除鏈表中的給定節(jié)點(diǎn),并使用?printList()?方法打印鏈表。文章來源地址http://www.zghlxwxcb.cn/news/detail-621525.html

到了這里,關(guān)于Java中鏈表的實(shí)現(xiàn)(超詳細(xì))的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Java——兩個(gè)鏈表的第一個(gè)公共節(jié)點(diǎn)

    Java——兩個(gè)鏈表的第一個(gè)公共節(jié)點(diǎn)

    ??途W(wǎng)在線oj題——兩個(gè)鏈表的第一個(gè)公共節(jié)點(diǎn) 輸入兩個(gè)無環(huán)的單向鏈表,找出它們的第一個(gè)公共結(jié)點(diǎn),如果沒有公共節(jié)點(diǎn)則返回空。(注意因?yàn)閭魅霐?shù)據(jù)是鏈表,所以錯(cuò)誤測試數(shù)據(jù)的提示是用其他方式顯示的,保證傳入數(shù)據(jù)是正確的) 數(shù)據(jù)范圍: n≤1000 要求:空間復(fù)雜度

    2024年02月02日
    瀏覽(132)
  • 2、有序鏈表的維護(hù)【問題描述】編寫一個(gè)程序,根據(jù)從標(biāo)準(zhǔn)輸入接收的指令來維護(hù)和操作排序的鏈表(C語言、java和Python分別實(shí)現(xiàn))

    【問題描述】 編寫一個(gè)程序,根據(jù)從標(biāo)準(zhǔn)輸入接收的指令來維護(hù)和操作排序的鏈表。鏈表是按順 序維護(hù)的,這意味著鏈表中的數(shù)據(jù)在每次操作后都以遞增的數(shù)字順序存儲(chǔ)。 請注意,在創(chuàng)建新節(jié)點(diǎn)時(shí),需要使用malloc為它們分配空間;一旦不再需要任何已 分配的空間,就應(yīng)該使

    2024年02月09日
    瀏覽(22)
  • Java 算法篇-鏈表的經(jīng)典算法:有序鏈表去重、合并多個(gè)有序鏈表

    Java 算法篇-鏈表的經(jīng)典算法:有序鏈表去重、合并多個(gè)有序鏈表

    ??博客主頁:?【 小扳_-CSDN博客】 ?感謝大家點(diǎn)贊??收藏?評論? ??? ? ? 文章目錄 ? ? ? ? ?1.0 鏈表的說明 ? ? ? ? ?2.0 有序鏈表去重的實(shí)現(xiàn)方式 ? ? ? ? 2.1 有序鏈表去重(保留重復(fù)的節(jié)點(diǎn)) -?使用遞歸來實(shí)現(xiàn) ? ? ? ? 2.2?有序鏈表去重(保留重復(fù)的節(jié)點(diǎn)) -?使用雙指針

    2024年02月05日
    瀏覽(23)
  • 力扣2095.刪除鏈表的中間節(jié)點(diǎn)(java快慢指針)

    Problem: 2095. 刪除鏈表的中間節(jié)點(diǎn) 利用快慢指針,快指針每次走兩步,慢指針每次走一步(循環(huán)退出條件是fast指針不為空同時(shí)fast.next不為空),但是我們?nèi)菀装l(fā)現(xiàn)這樣到最后slow指針正好指向我們需要?jiǎng)h除的節(jié)點(diǎn),由于沒有前指針,這樣我們不便操作。此時(shí)可以借助虛擬頭節(jié)點(diǎn)

    2024年02月06日
    瀏覽(22)
  • leetcode--刪除鏈表的倒數(shù)第N個(gè)節(jié)點(diǎn)(java)

    leetcode--刪除鏈表的倒數(shù)第N個(gè)節(jié)點(diǎn)(java)

    19 刪除鏈表的倒數(shù)第N個(gè)節(jié)點(diǎn) -可以測試 題目描述: 給你一個(gè)鏈表,刪除鏈表的倒數(shù)第 n 個(gè)結(jié)點(diǎn),并且返回鏈表的頭結(jié)點(diǎn) 示例1: 輸入:head = [1,2,3,4,5], n = 2 輸出:[1,2,3,5] 示例2: 輸入:head = [1], n = 1 輸出:[] 示例3: 輸入:head = [1,2], n = 1 輸出:[1] 提示: 鏈表中結(jié)點(diǎn)的數(shù)目為

    2024年02月07日
    瀏覽(19)
  • 【新】(2023Q2模擬題JAVA)華為OD機(jī)試 - 尋找鏈表的中間結(jié)點(diǎn)

    【新】(2023Q2模擬題JAVA)華為OD機(jī)試 - 尋找鏈表的中間結(jié)點(diǎn)

    華為od 2023 | 什么是華為od,od 薪資待遇,od機(jī)試題清單 華為OD機(jī)試真題大全,用 Python 解華為機(jī)試題 | 機(jī)試寶典 【華為OD機(jī)試】全流程解析+經(jīng)驗(yàn)分享,題型分享,防作弊指南 華為od機(jī)試,獨(dú)家整理 已參加機(jī)試人員的實(shí)戰(zhàn)技巧 給定一個(gè)單鏈表 L,請編寫程序輸出 L 中間結(jié)點(diǎn)保存的

    2023年04月08日
    瀏覽(46)
  • Java實(shí)現(xiàn)連接數(shù)據(jù)庫驗(yàn)證登錄和注冊(附詳細(xì)知識(shí)點(diǎn)講解)

    Java實(shí)現(xiàn)連接數(shù)據(jù)庫驗(yàn)證登錄和注冊(附詳細(xì)知識(shí)點(diǎn)講解)

    學(xué)完Java基礎(chǔ)后,一般會(huì)做個(gè)項(xiàng)目練手(上一篇博客有講到 Java在線聊天室課程設(shè)計(jì) ) 當(dāng)中肯定會(huì)涉及到 登錄驗(yàn)證 ,但沒學(xué)過數(shù)據(jù)庫 ??,不知道如何操作;只能把用戶賬戶密碼預(yù)存在一個(gè)txt文本當(dāng)中,然后通過IO流讀取驗(yàn)證 ? 最后去搜相應(yīng)的資料和網(wǎng)課進(jìn)行學(xué)習(xí),現(xiàn)在問題

    2024年02月02日
    瀏覽(19)
  • Java鏈表入門(超詳細(xì))

    Java鏈表入門(超詳細(xì))

    那么什么是鏈表呢?? 鏈表(Linked list)是一種常見的基礎(chǔ)數(shù)據(jù)結(jié)構(gòu),是一種線性表,但是并不會(huì)按線性的順序存儲(chǔ)數(shù)據(jù),而是在每一個(gè)節(jié)點(diǎn)里存到下一個(gè)節(jié)點(diǎn)的指針(Pointer)。 那么這是鏈表嗎,是的,但是究竟是什么意思呢 其實(shí),鏈表就像是解密游戲一樣,只有到達(dá)一個(gè)地點(diǎn),才會(huì)有

    2024年02月03日
    瀏覽(13)
  • Java中LinkList的基本介紹和細(xì)節(jié)討論。雙向鏈表的代碼和LinkList的源碼。LinkList和ArrayList的比較與選擇。

    LinkedList 是 Java 中的一個(gè)雙向鏈表實(shí)現(xiàn)的類,它實(shí)現(xiàn)了 List 接口,同時(shí)也實(shí)現(xiàn)了 Deque 接口,因此可以用作列表、隊(duì)列或雙端隊(duì)列。下面是關(guān)于 LinkedList 的基本介紹和細(xì)節(jié)討論: 基本介紹: LinkedList 是一個(gè)雙向鏈表實(shí)現(xiàn),每個(gè)節(jié)點(diǎn)包含了當(dāng)前元素的值、指向前一個(gè)節(jié)點(diǎn)的引用和

    2024年02月11日
    瀏覽(24)
  • Java入門高頻考查算法邏輯基礎(chǔ)知識(shí)3-編程篇(超詳細(xì)18題1.8萬字參考編程實(shí)現(xiàn))

    準(zhǔn)備這些面試題時(shí),請考慮如下準(zhǔn)備步驟: 理解問題并澄清任何可能的疑點(diǎn)。確保你了解了面試官的期望,包括問題限制條件和期望的解決方案。 如果可能且適用的話,嘗試先給出一個(gè)簡單的解決方案,比如暴力法,然后再逐步優(yōu)化它。 在優(yōu)化之前,先分析暴力解法的效率

    2024年01月18日
    瀏覽(27)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包