優點:
元素在記憶體中連續儲存,查詢效率高。
缺點:在儲存之前,需要預先申請記憶體空間。
在執行過程中,無法動態申請空間。如果資料量小,造成記憶體浪費。如果資料量大,造成記憶體溢位
在修改和刪除操作時,效率低
應用場景:
資料量可控。偏向查詢操作。構建線性表穩定
擴容方式:
申請更大記憶體,將原資料拷貝到新陣列中。
優點:
記憶體動態分配。
資料型別多樣化
修改和刪除操作靈活
缺點:查詢時需要遍歷,效率低下
應用場景:
資料動態分配,資料量不可控。頻繁插入刪除操作。動態性較強
擴容方式:
直接動態分配。使用指標向後新增
陣列和鍊錶
陣列名代表陣列的首位址,陣列的下標其實代表陣列中某個元素相對首位址的偏移量,陣列的第乙個元素是零偏移,因此從 0 開始。上面其實也只是乙個解釋,c 語言設計者用零開始編號,後來的各種語言也便紛紛效仿,因此就形成了這個習慣。單鏈表只支援乙個方向的訪問,第乙個節點稱為頭結點,最後乙個節點稱為尾結點。迴圈...
陣列和鍊錶
術語 在講述陣列和鍊錶之前,我們先了解乙個術語 索引和大o表示法。索引指元素的位置,因此我們不說 元素20的位置為1 而說 元素20位於索引1處 大o表示法指出演算法的速度有多快,演算法執行時間的增速。如o n 中的n指的是 運算元 也就是演算法執行時操作了幾次。有鑑於此,我們不僅要知道演算法需要多...
陣列和鍊錶
陣列名代表陣列的首位址,陣列的下標其實代表陣列中某個元素相對首位址的偏移量,陣列的第乙個元素是零偏移,因此從 0 開始。上面其實也只是乙個解釋,c 語言設計者用零開始編號,後來的各種語言也便紛紛效仿,因此就形成了這個習慣。單鏈表只支援乙個方向的訪問,第乙個節點稱為頭結點,最後乙個節點稱為尾結點。迴圈...