久久精品国产亚洲高清|精品日韩中文乱码在线|亚洲va中文字幕无码久|伊人久久综合狼伊人久久|亚洲不卡av不卡一区二区|精品久久久久久久蜜臀AV|国产精品19久久久久久不卡|国产男女猛烈视频在线观看麻豆

千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機(jī)構(gòu)

手機(jī)站
千鋒教育

千鋒學(xué)習(xí)站 | 隨時(shí)隨地免費(fèi)學(xué)

千鋒教育

掃一掃進(jìn)入千鋒手機(jī)站

領(lǐng)取全套視頻
千鋒教育

關(guān)注千鋒學(xué)習(xí)站小程序
隨時(shí)隨地免費(fèi)學(xué)習(xí)課程

當(dāng)前位置:首頁(yè)  >  技術(shù)干貨  > 在C語(yǔ)言下數(shù)組array與鏈表linklist各自的優(yōu)點(diǎn)和缺陷是什么?

在C語(yǔ)言下數(shù)組array與鏈表linklist各自的優(yōu)點(diǎn)和缺陷是什么?

來源:千鋒教育
發(fā)布人:xqq
時(shí)間: 2023-10-11 05:43:25 1696974205

一、在C語(yǔ)言下數(shù)組array與鏈表linklist各自的優(yōu)點(diǎn)和缺陷

數(shù)組可以通過下標(biāo)訪問,隨機(jī)訪問效率高,鏈表需要通過指針遍歷,訪問效率低。

數(shù)組在分配空間后不能再改變大小,如果滿了之后再放東西就必須重新分配一個(gè)較大的內(nèi)存空間,將原來的數(shù)組內(nèi)容拷貝進(jìn)去。而鏈表可以隨意插入,比數(shù)組靈活。

存相同的數(shù)據(jù),鏈表占用的內(nèi)存空間大,因?yàn)橐峙漕~外的內(nèi)存存下一個(gè)節(jié)點(diǎn)的內(nèi)存地址。

ArrayList

ArrayList是動(dòng)態(tài)擴(kuò)展數(shù)組,底層是用數(shù)組實(shí)現(xiàn),插入位置有三種情況,從首位插入,中間位置插入,尾部插入。線性表的插入刪除操作都是通過移動(dòng)來實(shí)現(xiàn)的,由于數(shù)組長(zhǎng)度固定不變,插入數(shù)據(jù)時(shí),需要一個(gè)新的數(shù)組。1.當(dāng)添加數(shù)據(jù)是在首位插入時(shí),先將新的數(shù)據(jù)放入到新的數(shù)組內(nèi),然后將原始數(shù)組中的數(shù)據(jù)復(fù)制到新的數(shù)組。

2.當(dāng)數(shù)據(jù)插入的位置是中間位置時(shí),先將插入位置前面的數(shù)據(jù)先放到新的數(shù)組里,再放新的數(shù)據(jù),再?gòu)?fù)制舊的數(shù)據(jù)完成添加。3.數(shù)據(jù)尾部插入,由于不會(huì)影響其他元素,因此會(huì)直接插入到后面。

同樣,刪除按位置也有三種情況:1.從頭部刪除,刪除頭結(jié)點(diǎn)然后移動(dòng)后面的數(shù)據(jù)

2.從中間指定位置刪除,找到要?jiǎng)h除數(shù)據(jù)的位置,刪除后,后面的數(shù)據(jù)移動(dòng).3.從尾部刪除:直接刪除尾部數(shù)據(jù)完成刪除操作。

LinkedList

LinkedList是雙向鏈表的數(shù)據(jù)結(jié)構(gòu),底層是用鏈表實(shí)現(xiàn),是由相互引用的節(jié)點(diǎn)組成的雙向鏈表,當(dāng)插入數(shù)據(jù)到某個(gè)位置時(shí),這個(gè)數(shù)據(jù)會(huì)形成一個(gè)新的節(jié)點(diǎn),然后改變鏈表中對(duì)應(yīng)的兩個(gè)節(jié)點(diǎn)的引用關(guān)系就可以完成插入。同樣,刪除數(shù)據(jù)時(shí),刪除對(duì)應(yīng)節(jié)點(diǎn)的引用就可以完成刪除操作。

延伸閱讀:

二、鏈表與數(shù)組的主要區(qū)別

(1)數(shù)組的元素個(gè)數(shù)是固定的,而組成鏈表的結(jié)點(diǎn)個(gè)數(shù)可按需要增減;

(2)數(shù)組元素的存諸單元在數(shù)組定義時(shí)分配,鏈表結(jié)點(diǎn)的存儲(chǔ)單元在程序執(zhí)行時(shí)動(dòng)態(tài)向系統(tǒng)申請(qǐng):

(3)數(shù)組中的元素順序關(guān)系由元素在數(shù)組中的位置(即下標(biāo))確定,鏈表中的結(jié)點(diǎn)順序關(guān)系由結(jié)點(diǎn)所包含的指針來體現(xiàn)。

(4)對(duì)于不是固定長(zhǎng)度的列表,用可能最大長(zhǎng)度的數(shù)組來描述,會(huì)浪費(fèi)許多內(nèi)存空間。

(5)對(duì)于元素的插人、刪除操作非常頻繁的列表處理場(chǎng)合,用數(shù)組表示列表也是不適宜的。若用鏈表實(shí)現(xiàn),會(huì)使程序結(jié)構(gòu)清晰,處理的方法也較為簡(jiǎn)便。

  例如:在一個(gè)列表中間要插人一個(gè)新元素,如用數(shù)組表示列表,為完成插人工作,插人處之后的全部元素必須向后移動(dòng)一個(gè)位置空出的位置用于存儲(chǔ)新元素。

對(duì)于在一個(gè)列表中刪除一個(gè)元素情況,為保持?jǐn)?shù)組中元素相對(duì)位置連續(xù)遞增,刪除處之后的元素都得向前移一個(gè)位置。如用鏈表實(shí)現(xiàn)列表.鏈表結(jié)點(diǎn)的插人或刪除操作不再需要移動(dòng)結(jié)點(diǎn),只需改變相關(guān)的結(jié)點(diǎn)中的后繼結(jié)點(diǎn)指針的值即可,與結(jié)點(diǎn)的實(shí)際存儲(chǔ)位置無關(guān)。

聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
10年以上業(yè)內(nèi)強(qiáng)師集結(jié),手把手帶你蛻變精英
請(qǐng)您保持通訊暢通,專屬學(xué)習(xí)老師24小時(shí)內(nèi)將與您1V1溝通
免費(fèi)領(lǐng)取
今日已有369人領(lǐng)取成功
劉同學(xué) 138****2860 剛剛成功領(lǐng)取
王同學(xué) 131****2015 剛剛成功領(lǐng)取
張同學(xué) 133****4652 剛剛成功領(lǐng)取
李同學(xué) 135****8607 剛剛成功領(lǐng)取
楊同學(xué) 132****5667 剛剛成功領(lǐng)取
岳同學(xué) 134****6652 剛剛成功領(lǐng)取
梁同學(xué) 157****2950 剛剛成功領(lǐng)取
劉同學(xué) 189****1015 剛剛成功領(lǐng)取
張同學(xué) 155****4678 剛剛成功領(lǐng)取
鄒同學(xué) 139****2907 剛剛成功領(lǐng)取
董同學(xué) 138****2867 剛剛成功領(lǐng)取
周同學(xué) 136****3602 剛剛成功領(lǐng)取
相關(guān)推薦HOT
定義數(shù)據(jù)結(jié)構(gòu)中重復(fù)定義結(jié)構(gòu)體類型的作用是什么?

一、定義數(shù)據(jù)結(jié)構(gòu)中重復(fù)定義結(jié)構(gòu)體類型的作用定義數(shù)據(jù)結(jié)構(gòu)中重復(fù)定義結(jié)構(gòu)體類型的作用是為了更加直觀的表達(dá)數(shù)據(jù)類型。比如Position FindMin(Sea...詳情>>

2023-10-11 07:34:37
鏈表什么時(shí)候要開辟空間?

一、鏈表什么時(shí)候要開辟空間鏈表創(chuàng)建鏈表需要開辟空間,遍歷不需要。1、P 和 Rear 都是指針,是用來存放內(nèi)存地址的變量。2、malloc() 函數(shù),申...詳情>>

2023-10-11 07:26:53
Layer2是什么和Layer1有哪些區(qū)別?

一、Layer2是什么和Layer1的區(qū)別所謂Layer1和Layer2也就是名列前茅層和第二層。其中第0層對(duì)應(yīng)OSI模型的底層協(xié)議。Layer2是什么和Layer1的區(qū)別是...詳情>>

2023-10-11 07:12:58
數(shù)據(jù)結(jié)構(gòu)中KMP算法是什么?

一、數(shù)據(jù)結(jié)構(gòu)中KMP算法KMP算法介紹KMP算法是一種改進(jìn)的字符串匹配算法,由D.E.Knuth,J.H.Morris和V.R.Pratt提出的,因此人們稱它為克努特—莫...詳情>>

2023-10-11 07:11:44
計(jì)算機(jī)網(wǎng)絡(luò)管理軟件有哪些好用?

1、Nagios CoreNagios Core在全球范圍內(nèi)用于幫助監(jiān)控網(wǎng)絡(luò)和跟蹤各種基礎(chǔ)設(shè)施。它的主動(dòng)監(jiān)控功能可以檢測(cè)它負(fù)責(zé)監(jiān)控的服務(wù)器上的網(wǎng)絡(luò)設(shè)備、服務(wù)...詳情>>

2023-10-11 06:33:55
快速通道