国产一区二区精品-国产一区二区精品久-国产一区二区精品久久-国产一区二区精品久久91-免费毛片播放-免费毛片基地

千鋒教育-做有情懷、有良心、有品質的職業(yè)教育機構

手機站
千鋒教育

千鋒學習站 | 隨時隨地免費學

千鋒教育

掃一掃進入千鋒手機站

領取全套視頻
千鋒教育

關注千鋒學習站小程序
隨時隨地免費學習課程

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

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

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

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

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

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

存相同的數(shù)據(jù),鏈表占用的內存空間大,因為要分配額外的內存存下一個節(jié)點的內存地址。

ArrayList

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

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

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

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

LinkedList

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

延伸閱讀:

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

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

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

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

(4)對于不是固定長度的列表,用可能最大長度的數(shù)組來描述,會浪費許多內存空間。

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

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

對于在一個列表中刪除一個元素情況,為保持數(shù)組中元素相對位置連續(xù)遞增,刪除處之后的元素都得向前移一個位置。如用鏈表實現(xiàn)列表.鏈表結點的插人或刪除操作不再需要移動結點,只需改變相關的結點中的后繼結點指針的值即可,與結點的實際存儲位置無關。

聲明:本站稿件版權均屬千鋒教育所有,未經許可不得擅自轉載。
10年以上業(yè)內強師集結,手把手帶你蛻變精英
請您保持通訊暢通,專屬學習老師24小時內將與您1V1溝通
免費領取
今日已有369人領取成功
劉同學 138****2860 剛剛成功領取
王同學 131****2015 剛剛成功領取
張同學 133****4652 剛剛成功領取
李同學 135****8607 剛剛成功領取
楊同學 132****5667 剛剛成功領取
岳同學 134****6652 剛剛成功領取
梁同學 157****2950 剛剛成功領取
劉同學 189****1015 剛剛成功領取
張同學 155****4678 剛剛成功領取
鄒同學 139****2907 剛剛成功領取
董同學 138****2867 剛剛成功領取
周同學 136****3602 剛剛成功領取
相關推薦HOT