數組,在內存上給出了連續的空間.數組
鏈表,內存地址上能夠是不連續的,每一個鏈表的節點包括原來的內存和下一個節點的信息(單向的一個,雙向鏈表的話,會有兩個). spa
1.內存空間佔用的少,由於鏈表節點會附加上一塊或兩塊下一個節點的信息.可是數組在創建時就固定了.因此也有可能會由於創建的數組過大或不足引發內存上的問題.
2.數組內的數據可隨機訪問.但鏈表不具有隨機訪問性.這個很容易理解.數組在內存裏是連續的空間.好比若是一個數組地址從100到200,且每一個元素佔用兩個字節,那麼100-200之間的任何一個偶數都是數組元素的地址.能夠直接訪問.鏈表在內存地址多是分散的.因此必須經過上一節點中的信息找能找到下一個節點.
3.查找速度上.這個也是由於內存地址的連續性的問題.不羅索了. 指針
1.插入與刪除的操做.若是數組的中間插入一個元素,那麼這個元素後的全部元素的內存地址都要日後移動.刪除的話同理.只有對數據的最後一個元素進行插入刪除操做時,才比較快.鏈表只須要更改有必要更改的節點內的節點信息就夠了.並不須要更改節點的內存地址.
2.內存地址的利用率方面.無論你內存裏還有多少空間,若是沒辦法一次性給出數組所需的要空間,那就會提示內存不足,磁盤空間整理的緣由之一在這裏.而鏈表能夠是分散的空間地址.
3.鏈表的擴展性比數組好.由於一個數組創建後所佔用的空間大小就是固定的.若是滿了就無法擴展.只能新建一個更大空間的數組.而鏈表不是固定的,能夠很方便的擴展.排序
數組:內存
優勢:使用方便 ,查詢效率 比鏈表高,內存爲一連續的區域 ci
缺點:大小固定,不適合動態存儲,不方便動態添加
鏈表:table
優勢:可動態添加刪除 大小可變
缺點:只能經過順次指針訪問,查詢效率低效率
順序表的優勢:查找方便,適合隨機查找
順序表的缺點:插入、刪除操做不方便,由於插入、刪除操做會致使大量元素的移動
連接表的優勢:插入、刪除操做方便,不會致使元素的移動,由於元素增減,只須要調整指針。
順序表的缺點:查找方便,不適合隨機查找變量
鏈表的特性是在中間任意位置添加刪除元素的都很是的快,不須要移動其它的元素。 鏈表顧名思義,要把各個元素連接起來纔算撒。 一般鏈表每個元素都要保存一個指向下一個元素的指針(單鏈表)。 雙鏈表的化每一個元素即要保存到下一個元素的指針,還要保存一個上一個元素的指針。 循環鏈表則把最後一個元素中保存下一個元素指針指向第一個元素。 數組是一組具備相同類型和名稱的變量的集(百度)合。這些變量稱爲數組的元素,每一個數組元素都有一個編號,這個編號叫作下標,咱們能夠經過下標來區別這些元素。數組元素的個數有時也稱之爲數組的長度。 |
數組在進行查找,排序操做是很方便;鏈表不須要連續空間,並且做插入操做方便! 分配空間上也不一樣,創建過程也不一樣! |
鏈表和數組的本質差別 1 在訪問方式上 數組能夠隨機訪問其中的元素 鏈表則必須是順序訪問,不能隨機訪問 2 空間的使用上 鏈表能夠隨意擴大 數組則不能 |