一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

數(shù)組和鏈表有何區(qū)別

學(xué)益得智能硬件 ? 來源:學(xué)益得智能硬件 ? 2024-02-19 15:33 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

數(shù)組和鏈表的區(qū)別,這個(gè)問題,不僅面試中經(jīng)常遇到,考研的同學(xué)也得掌握才行。

這兩個(gè)的區(qū)別,還得從他們?cè)趦?nèi)存里面的布局講起。

5554628c-cef8-11ee-a297-92fbcf53809c.png ?

數(shù)組是一塊連續(xù)的內(nèi)存,這塊內(nèi)存可以在棧空間也可以在堆空間:

5571febe-cef8-11ee-a297-92fbcf53809c.png ?

一般都會(huì)有個(gè)容量限制,比如:

int arr[5];
就表示數(shù)組有 5 個(gè)元素,在內(nèi)存中占 20 個(gè)字節(jié)。

55881708-cef8-11ee-a297-92fbcf53809c.png ?

而且為了方便使用,數(shù)組在存儲(chǔ)數(shù)據(jù)的時(shí)候盡量保持連續(xù)。

55a7c13e-cef8-11ee-a297-92fbcf53809c.png ?

鏈表在內(nèi)存中不用連續(xù),位置由系統(tǒng)隨機(jī)分配,所以這就需要某種機(jī)制能把各個(gè)數(shù)據(jù)串聯(lián)起來。

鏈表由一個(gè)一個(gè)結(jié)點(diǎn)組成,每個(gè)結(jié)點(diǎn)都分成數(shù)據(jù)域和指針域,指針域指向下一個(gè)結(jié)點(diǎn)。

這種結(jié)構(gòu)也決定了鏈表沒有容量限制,只要內(nèi)存夠用,就能保存更多的數(shù)據(jù)。

55bd89ec-cef8-11ee-a297-92fbcf53809c.png ?

數(shù)組和鏈表的訪問方式也不一樣。

數(shù)組因其在內(nèi)存中連續(xù)排布,訪問的時(shí)候只要數(shù)組名加上數(shù)組下標(biāo)就能精確定位到指定的元素。

55d9e4c0-cef8-11ee-a297-92fbcf53809c.png ?

數(shù)組名本身表示數(shù)組首元素的地址,加上下標(biāo),其實(shí)就是個(gè)偏移量,所以就訪問速度而言,數(shù)組的效率確實(shí)要高。

鏈表因?yàn)樵趦?nèi)存中排布不連續(xù),所以不支持這種隨機(jī)訪問。要鎖定某個(gè)結(jié)點(diǎn),必須得借助指針,一步一步向下移動(dòng),結(jié)點(diǎn)越多,訪問的效率越低。

他倆的最大區(qū)別,還得是插入和刪除,尤其是針對(duì)開頭的插入和刪除操作。

假設(shè)都往第一個(gè)位置插入元素。

如果是數(shù)組,在空間還沒有滿的情況下,先要把后面的元素逐個(gè)向后移動(dòng),然后把第一個(gè)位置騰出來,再把新元素放進(jìn)去。 所以數(shù)組里面的元素越多,插入的效率也就越低。

鏈表的插入方法完全不一樣,先來一個(gè)新結(jié)點(diǎn),填上數(shù)據(jù)域和指針域,然后修改頭節(jié)點(diǎn)的指向關(guān)系,不管鏈表中有多少個(gè)結(jié)點(diǎn),插入的步驟都是這么多。

所以在插入和刪除操作上,大部分情況下鏈表的效率要高于數(shù)組。

數(shù)組和鏈表在軟件開發(fā)中出現(xiàn)的場(chǎng)景很高,數(shù)組簡(jiǎn)單,鏈表更實(shí)用。


審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 數(shù)組
    +關(guān)注

    關(guān)注

    1

    文章

    420

    瀏覽量

    26571
  • 鏈表
    +關(guān)注

    關(guān)注

    0

    文章

    80

    瀏覽量

    10840

原文標(biāo)題:數(shù)組和鏈表的區(qū)別

文章出處:【微信號(hào):學(xué)益得智能硬件,微信公眾號(hào):學(xué)益得智能硬件】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    C語言-鏈表(單向鏈表、雙向鏈表)

    在前面章節(jié)已經(jīng)學(xué)習(xí)了數(shù)組的使用,數(shù)組的空間是連續(xù)空間,數(shù)組的大小恒定的,在很多動(dòng)態(tài)數(shù)據(jù)存儲(chǔ)的應(yīng)用場(chǎng)景下,使用不方便;而這篇文章介紹的鏈表結(jié)構(gòu),支持動(dòng)態(tài)增加節(jié)點(diǎn),釋放節(jié)點(diǎn),比較適合存儲(chǔ)動(dòng)
    的頭像 發(fā)表于 09-09 11:30 ?2009次閱讀

    指針數(shù)組數(shù)組指針及其函數(shù)指針區(qū)別

    進(jìn)程的五種狀態(tài)模型分別是哪些呢?指針數(shù)組數(shù)組指針及其函數(shù)指針區(qū)別呢?
    發(fā)表于 12-24 07:28

    在RT-Thread中普通鏈表和侵入式鏈表區(qū)別

    ,這個(gè)成員變量是一個(gè)通用的鏈表結(jié)點(diǎn)。二者區(qū)別普通的鏈表和侵入式鏈表區(qū)別在于普通的鏈表結(jié)點(diǎn)的指針
    發(fā)表于 04-11 15:15

    DVR和NVR區(qū)別 誰將最終占領(lǐng)市場(chǎng)?

    DVR和NVR區(qū)別 誰將最終占領(lǐng)市場(chǎng)?
    發(fā)表于 12-27 22:19 ?0次下載

    指針和數(shù)組都是C語言的精髓所在 兩者聯(lián)系區(qū)別

    指針和數(shù)組都是C語言的精髓所在,對(duì)于很多C程序員來說,如果你問這樣一個(gè)問題:數(shù)組和指針什么區(qū)別?他們的答案很可能是:”數(shù)組和指針不是同一樣
    的頭像 發(fā)表于 05-27 14:51 ?4552次閱讀
    指針和<b class='flag-5'>數(shù)組</b>都是C語言的精髓所在 兩者<b class='flag-5'>有</b><b class='flag-5'>何</b>聯(lián)系<b class='flag-5'>區(qū)別</b>

    C語言指針和數(shù)組區(qū)別

    在C語言教程中我們使用通過數(shù)組名通過偏移和指針偏移都可以遍歷數(shù)組,那么指針和數(shù)組到底什么區(qū)別??
    的頭像 發(fā)表于 07-18 16:29 ?2290次閱讀

    C語言_鏈表總結(jié)

    本篇文章介紹C語言鏈表相關(guān)知識(shí)點(diǎn),涉及鏈表的創(chuàng)建、單向鏈表、循環(huán)鏈表、雙向鏈表、單向循環(huán)鏈表,
    的頭像 發(fā)表于 08-14 09:53 ?2115次閱讀

    什么是柔性數(shù)組?柔性數(shù)組優(yōu)點(diǎn)

    C99中,結(jié)構(gòu)體中的最后一個(gè)元素允許是未知大小的數(shù)組,這就叫作 柔性數(shù)組 。
    的頭像 發(fā)表于 09-14 10:34 ?1520次閱讀

    unpacked數(shù)組和packed數(shù)組的主要區(qū)別

    unpacked數(shù)組和packed數(shù)組的主要區(qū)別是unpacked數(shù)組在物理存儲(chǔ)時(shí)不能保證連續(xù),而packed數(shù)組則能保證在物理上連續(xù)存儲(chǔ)。
    的頭像 發(fā)表于 10-18 09:13 ?3276次閱讀

    ZigBee 與 Z-Wave:區(qū)別?

    ZigBee 與 Z-Wave:區(qū)別
    的頭像 發(fā)表于 01-03 09:45 ?2232次閱讀
    ZigBee 與 Z-Wave:<b class='flag-5'>有</b><b class='flag-5'>何</b><b class='flag-5'>區(qū)別</b>?

    接地基礎(chǔ)知識(shí):PE 和 FG 區(qū)別

    接地基礎(chǔ)知識(shí):PE 和 FG 區(qū)別?
    的頭像 發(fā)表于 03-10 15:07 ?1.7w次閱讀
    接地基礎(chǔ)知識(shí):PE 和 FG <b class='flag-5'>有</b><b class='flag-5'>何</b><b class='flag-5'>區(qū)別</b>?

    鏈表和雙鏈表區(qū)別在哪里

    鏈表和雙鏈表區(qū)別鏈表的每一個(gè)節(jié)點(diǎn)中只有指向下一個(gè)結(jié)點(diǎn)的指針,不能進(jìn)行回溯。 雙鏈表的每一個(gè)節(jié)點(diǎn)給中既有指向下一個(gè)結(jié)點(diǎn)的指針,也有指向
    的頭像 發(fā)表于 07-27 11:20 ?2121次閱讀
    單<b class='flag-5'>鏈表</b>和雙<b class='flag-5'>鏈表</b>的<b class='flag-5'>區(qū)別</b>在哪里

    異構(gòu)集成 (HI) 與系統(tǒng)級(jí)芯片 (SoC) 區(qū)別?

    異構(gòu)集成 (HI) 與系統(tǒng)級(jí)芯片 (SoC) 區(qū)別
    的頭像 發(fā)表于 11-29 15:39 ?3376次閱讀
    異構(gòu)集成 (HI) 與系統(tǒng)級(jí)芯片 (SoC) <b class='flag-5'>有</b><b class='flag-5'>何</b><b class='flag-5'>區(qū)別</b>?

    光耦與光繼電器區(qū)別?

    光耦與光繼電器區(qū)別?
    的頭像 發(fā)表于 12-13 13:59 ?1277次閱讀
    光耦與光繼電器<b class='flag-5'>有</b><b class='flag-5'>何</b><b class='flag-5'>區(qū)別</b>?

    數(shù)組鏈表在內(nèi)存中的區(qū)別 數(shù)組鏈表的優(yōu)缺點(diǎn)

    數(shù)組鏈表在內(nèi)存中的區(qū)別 數(shù)組鏈表的優(yōu)缺點(diǎn)? 數(shù)組鏈表
    的頭像 發(fā)表于 02-21 11:30 ?1551次閱讀