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

C++數(shù)據(jù)結(jié)構(gòu)之鏈表(詳解)

這篇具有很好參考價(jià)值的文章主要介紹了C++數(shù)據(jù)結(jié)構(gòu)之鏈表(詳解)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

主要參考文章地址 01.鏈表基礎(chǔ)知識(shí) | 算法通關(guān)手冊(cè) (itcharge.cn))

本次內(nèi)容是對(duì)鏈表的總結(jié),可以看了上面的文章之后。

在看我下面的內(nèi)容,做一個(gè)簡(jiǎn)短的復(fù)習(xí),且本內(nèi)容的代碼均用C++實(shí)現(xiàn),而參考資料的代碼則為python。

每一個(gè)標(biāo)題都有一個(gè)完整的鏈接,也可以點(diǎn)擊下面的鏈接。


單鏈表
雙鏈表
循環(huán)鏈表
內(nèi)核鏈表和企業(yè)鏈表
鏈表的排序

1 鏈表簡(jiǎn)介

鏈表的定義

一種線(xiàn)性表數(shù)據(jù)結(jié)構(gòu)。它使用一組任意的存儲(chǔ)單元,來(lái)存儲(chǔ)一組具有相同類(lèi)型的地址,但是鏈表一般是內(nèi)嵌到數(shù)據(jù)結(jié)構(gòu)中,而數(shù)據(jù)結(jié)構(gòu)的類(lèi)型可以是不同的。

2 單鏈表

c++ 鏈表,數(shù)據(jù)結(jié)構(gòu),算法與思維,數(shù)據(jù)結(jié)構(gòu),鏈表,c++

優(yōu)缺點(diǎn):

  • 優(yōu)點(diǎn):存儲(chǔ)空間不必事先分配;一些操作效率遠(yuǎn)比數(shù)組高(插入,移動(dòng),刪除)
  • 缺點(diǎn):占用空間比數(shù)組多。

3 雙鏈表

簡(jiǎn)而言之,就是節(jié)點(diǎn)同時(shí)擁有前驅(qū)指針和后繼指針。使得使用更加的靈活

4 循環(huán)鏈表

簡(jiǎn)而言之,就是在雙鏈表的基礎(chǔ)上,末尾的后繼指針不在指向NULL,而是指向頭節(jié)點(diǎn)

5 內(nèi)核鏈表和企業(yè)鏈表

企業(yè)和內(nèi)核中使用鏈表,和我們常用的方式有所不同,如下所示,整體可以看作一個(gè)數(shù)據(jù)域,而指針域則內(nèi)嵌在數(shù)據(jù)域之中。

c++ 鏈表,數(shù)據(jù)結(jié)構(gòu),算法與思維,數(shù)據(jù)結(jié)構(gòu),鏈表,c++

6 鏈表的排序

對(duì)于鏈表的排序算法,除了希爾排序之外,且堆排序不建議,其他排序方法都是支持的,如下:

冒泡排序,選擇排序,插入排序,歸并排序,快速排序,計(jì)數(shù)排序,桶排序和基數(shù)排序。

具體的算法可以參考上述鏈接。

7 鏈表的雙指針

雙指針(Two Pointers):指的是在遍歷元素的過(guò)程中,不是使用單個(gè)指針進(jìn)行訪(fǎng)問(wèn)。

  • 而是使用兩個(gè)指針進(jìn)行訪(fǎng)問(wèn),從而達(dá)到相應(yīng)的目的。如果兩個(gè)指針?lè)较蛳喾?,則稱(chēng)為「對(duì)撞時(shí)針」。
  • 如果兩個(gè)指針?lè)较蛳嗤?,則稱(chēng)為「快慢指針」。
  • 如果兩個(gè)指針?lè)謩e屬于不同的數(shù)組 / 鏈表,則稱(chēng)為「分離雙指針」。
對(duì)撞指針

對(duì)于單鏈表而言,是不能夠反向指的,所以一般不會(huì)用到對(duì)撞指針??赡軐?duì)于循環(huán)鏈表,可以嘗試使用兩個(gè)指針朝著不同的方向進(jìn)行移動(dòng)。

  • 適用范圍:一般是在有序的數(shù)據(jù)結(jié)構(gòu)中使用。
快慢指針

起點(diǎn)不一致的快慢指針

顧名思義,就是兩個(gè)指針的起點(diǎn)不一樣,然后他們的速度可以是一樣的。

快指針fast比慢指針slow先走n步,知道快指針移動(dòng)到鏈表尾端為止。

  • 比如你要定位到單向鏈表的指針最后一個(gè)節(jié)點(diǎn)的前一個(gè)節(jié)點(diǎn),那么你就需要兩個(gè)指針,且前一個(gè)指針先走1步。

步長(zhǎng)不一致的快慢指針

步長(zhǎng)不一致,比如fast指針每次移動(dòng)2步,慢指針每次移動(dòng)一步,這樣就可以得到鏈表數(shù)據(jù)中間的節(jié)點(diǎn)。可以借此實(shí)現(xiàn)二分法查找。

還可以用來(lái)判斷鏈表是否成環(huán)問(wèn)題。

分離雙指針

這里最簡(jiǎn)單的例子就是鏈表在執(zhí)行歸并排序的時(shí),就需要將左,右兩個(gè)鏈表進(jìn)行合并,就需要兩個(gè)分離指針進(jìn)行鏈表合并。


總結(jié):

因?yàn)榈?點(diǎn)的內(nèi)容不多,這里不涉及刷題,所以第7點(diǎn)就直接總結(jié)了。

剩下的詳細(xì)內(nèi)容,可以在鏈接中看到。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-608507.html

到了這里,關(guān)于C++數(shù)據(jù)結(jié)構(gòu)之鏈表(詳解)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • 小白也能學(xué)會(huì)的鏈表 | C++ | 算法與數(shù)據(jù)結(jié)構(gòu) (新手村)

    本質(zhì):找到兩個(gè)有序數(shù)據(jù)段中的第一個(gè)相同數(shù)據(jù) 解題:利用set的不重復(fù)性,首先把headA都塞到set中,再遍歷headB找有沒(méi)有已經(jīng)出現(xiàn)在set中的節(jié)點(diǎn)即可。 注意! set的數(shù)據(jù)是ListNode* 不是 int。如果是int可能出現(xiàn)節(jié)點(diǎn)不同但是var相同的情況,而ListNode* 就不會(huì)。 時(shí)間復(fù)雜度:O(2n)

    2024年02月14日
    瀏覽(21)
  • 數(shù)據(jù)結(jié)構(gòu)之鏈表

    數(shù)據(jù)結(jié)構(gòu)之鏈表

    頭文件 自定義函數(shù) 主函數(shù) 效果圖 ?

    2024年01月25日
    瀏覽(27)
  • 【數(shù)據(jù)結(jié)構(gòu)】線(xiàn)性表之鏈表

    【數(shù)據(jù)結(jié)構(gòu)】線(xiàn)性表之鏈表

    上一篇文章講述了線(xiàn)性表中的順序表,這篇文章講述關(guān)于鏈表的定義、類(lèi)別、實(shí)現(xiàn)、多種不同鏈表的優(yōu)缺點(diǎn)和鏈表與順序表的優(yōu)缺點(diǎn)。 關(guān)于上一篇文章的鏈接:線(xiàn)性表之順序表 鏈表是一種物理存儲(chǔ)結(jié)構(gòu)上 非連續(xù)、非順序 的存儲(chǔ)結(jié)構(gòu),數(shù)據(jù)元素的邏輯順序是通過(guò)鏈表中的指針

    2024年02月05日
    瀏覽(101)
  • C語(yǔ)言數(shù)據(jù)結(jié)構(gòu)之鏈表

    C語(yǔ)言數(shù)據(jù)結(jié)構(gòu)之鏈表

    在上一篇博客中我們提到,線(xiàn)性表包括順序表和鏈表,順序表在上篇博客中已經(jīng)介紹,本篇博客介紹一下另一種線(xiàn)性表—— 鏈表 。 概念:鏈表是?種 物理存儲(chǔ)結(jié)構(gòu)上?連續(xù)、?順序 的存儲(chǔ)結(jié)構(gòu),數(shù)據(jù)元素的 邏輯順序是通過(guò)鏈表中的指針鏈接次序?qū)崿F(xiàn)的 。 鏈表的結(jié)構(gòu)跟?

    2024年04月22日
    瀏覽(31)
  • C語(yǔ)言進(jìn)階——數(shù)據(jù)結(jié)構(gòu)之鏈表(續(xù))

    C語(yǔ)言進(jìn)階——數(shù)據(jù)結(jié)構(gòu)之鏈表(續(xù))

    hello,大家好呀,我是Humble,本篇博客承接之前的 C語(yǔ)言進(jìn)階——數(shù)據(jù)結(jié)構(gòu)之鏈表 的內(nèi)容 (沒(méi)看過(guò)的小伙伴可以從我創(chuàng)建的專(zhuān)欄C語(yǔ)言進(jìn)階之?dāng)?shù)據(jù)結(jié)構(gòu) 找到那篇文章并閱讀后在回來(lái)哦~) ,上次我們重點(diǎn)說(shuō)了鏈表中的 單鏈表 ,即 不帶頭單向不循環(huán)鏈表 還說(shuō)到了鏈表的分類(lèi)雖

    2024年01月25日
    瀏覽(22)
  • 數(shù)據(jù)結(jié)構(gòu)之鏈表練習(xí)與習(xí)題詳細(xì)解析

    數(shù)據(jù)結(jié)構(gòu)之鏈表練習(xí)與習(xí)題詳細(xì)解析

    個(gè)人主頁(yè):點(diǎn)我進(jìn)入主頁(yè) 專(zhuān)欄分類(lèi):C語(yǔ)言初階? ? ??C語(yǔ)言程序設(shè)計(jì)————KTV? ? ? ?C語(yǔ)言小游戲? ? ?C語(yǔ)言進(jìn)階 C語(yǔ)言刷題? ? ? ?數(shù)據(jù)結(jié)構(gòu)初階 歡迎大家點(diǎn)贊,評(píng)論,收藏。 一起努力,一起奔赴大廠。 目錄 1.前言 2.習(xí)題解析 2.1習(xí)題一 2.2習(xí)題二 2.3習(xí)題三 2.4習(xí)題四 2.

    2024年02月05日
    瀏覽(29)
  • 【023】C/C++數(shù)據(jù)結(jié)構(gòu)之鏈表及其實(shí)戰(zhàn)應(yīng)用

    【023】C/C++數(shù)據(jù)結(jié)構(gòu)之鏈表及其實(shí)戰(zhàn)應(yīng)用

    ?? 作者簡(jiǎn)介:專(zhuān)注于C/C++高性能程序設(shè)計(jì)和開(kāi)發(fā),理論與代碼實(shí)踐結(jié)合,讓世界沒(méi)有難學(xué)的技術(shù)。包括C/C++、Linux、MySQL、Redis、TCP/IP、協(xié)程、網(wǎng)絡(luò)編程等。 ?? ??? CSDN實(shí)力新星,社區(qū)專(zhuān)家博主 ?? ?? 專(zhuān)欄介紹:從零到c++精通的學(xué)習(xí)之路。內(nèi)容包括C++基礎(chǔ)編程、中級(jí)編程、

    2024年02月08日
    瀏覽(27)
  • C/C++數(shù)據(jù)結(jié)構(gòu)之鏈表題目答案與解析

    C/C++數(shù)據(jù)結(jié)構(gòu)之鏈表題目答案與解析

    個(gè)人主頁(yè):點(diǎn)我進(jìn)入主頁(yè) 專(zhuān)欄分類(lèi):C語(yǔ)言初階? ? ??C語(yǔ)言程序設(shè)計(jì)————KTV? ? ? ?C語(yǔ)言小游戲? ? ?C語(yǔ)言進(jìn)階 C語(yǔ)言刷題? ? ? ?數(shù)據(jù)結(jié)構(gòu)初階 歡迎大家點(diǎn)贊,評(píng)論,收藏。 一起努力,一起奔赴大廠。 目錄 1.前言? 2.題目解析 2.1?移除鏈表元素 2.2反轉(zhuǎn)鏈表 2.3鏈表的中

    2024年02月05日
    瀏覽(23)
  • 數(shù)據(jù)結(jié)構(gòu)之鏈表 - 超詳細(xì)的教程,手把手教你認(rèn)識(shí)并運(yùn)用鏈表

    數(shù)據(jù)結(jié)構(gòu)之鏈表 - 超詳細(xì)的教程,手把手教你認(rèn)識(shí)并運(yùn)用鏈表

    順序表只適合靜態(tài)的查找和更新,不適合插入和刪除元素, 因?yàn)樵贏rrayList中插入和刪除元素時(shí),由于需要將后序元素往前后者往后移動(dòng),所以時(shí)間復(fù)雜度會(huì)相當(dāng)高,能達(dá)到O(N)。 為了解決這一問(wèn)題,java 引入了 LinkedList(鏈表)。 鏈表是一種 邏輯上連續(xù),物理上不連續(xù) 的存儲(chǔ)結(jié)

    2024年02月09日
    瀏覽(91)
  • 【c++學(xué)習(xí)】數(shù)據(jù)結(jié)構(gòu)中的鏈表

    【c++學(xué)習(xí)】數(shù)據(jù)結(jié)構(gòu)中的鏈表

    鏈表與線(xiàn)性表相對(duì),鏈表數(shù)據(jù)在內(nèi)存中的存儲(chǔ)空間是不連續(xù)的,鏈表每個(gè)節(jié)點(diǎn)包含數(shù)據(jù)域和指針域。 下述代碼實(shí)現(xiàn)了鏈表及其接口 包括增、刪、查、改以及其他一些簡(jiǎn)單的功能 運(yùn)行結(jié)果: 于 2024-01-23 第一次整理編寫(xiě) 學(xué)習(xí)時(shí)整理,不當(dāng)之處煩請(qǐng)指正 碼字不易,留個(gè)贊再走吧

    2024年01月24日
    瀏覽(29)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包