首頁 >後端開發 >PHP問題 >php中鍊錶和陣列的差別是什麼

php中鍊錶和陣列的差別是什麼

青灯夜游
青灯夜游原創
2021-07-08 14:06:061701瀏覽

區別:1、數組靜態分配內存,鍊錶動態分配內存;2、數組在內存中連續,鍊錶不連續;3、數組元素在棧區,鍊錶元素在堆區;4、數組定位元素的時間複雜度為O(1),鍊錶為O(n);5、陣列插入或刪除元素的時間複雜度為O(n),鍊錶為O(1)。

php中鍊錶和陣列的差別是什麼

本教學操作環境:windows7系統、PHP7.1版,DELL G3電腦

什麼是鍊錶

鍊錶是一種實體儲存單元上非連續、非順序的儲存結構,資料元素的邏輯順序是透過鍊錶中的指標連結順序來實現的。

鍊錶由一系列結點(鍊錶中每一個元素稱為結點)組成,結點可以在運行時動態產生。

每個結點包含兩個部分:一個是儲存資料元素的資料域,另一個是儲存下一個結點位址的指標域。

什麼是陣列

陣列就是一組資料的集合,把一系列資料組織起來,形成一個可操作的整體。 PHP 中的陣列較為複雜,但比其他許多高階語言中的陣列更為靈活。

數組 array 是一組有序的變量,其中每個值被稱為一個元素。每個元素由一個特殊的標識符來區分,這個標識符稱為鍵(也稱為下標)。

陣列中的每個實體都包含兩項,分別是鍵(key)和值(value)。可以透過鍵值來取得對應的陣列元素,這些鍵可以是數值鍵,也可以是關聯鍵。如果說變數是儲存單一值的容器,那麼陣列就是儲存多個值的容器。

php中鍊錶和陣列的比較

  • #陣列在記憶體中連續,鍊錶不連續;

  • 由於不同的儲存方式導致數組靜態分配內存,鍊錶動態分配內存,數組元素在棧區,鍊錶元素在堆區;

  • 由於陣列在記憶體中連續,我們可以利用下標定位,時間複雜度為O(1),鍊錶定位元素時間複雜度O(n);

  • ##但由於陣列的連續性數組插入或刪除元素的時間複雜度O(n),鍊錶的時間複雜度O(1)。

總結一下,數組和鍊錶的區別如下

#1.數組靜態分配內存,鍊錶動態分配內存

2.數組在記憶體中連續,鍊錶不連續

3.數組元素在棧區,鍊錶元素在堆區

4.數組利用下標定位,時間複雜度為O( 1),鍊錶定位元素時間複雜度O(n);

5.陣列插入或刪除元素的時間複雜度O(n),鍊錶的時間複雜度O(1)。

推薦學習:《

PHP影片教學

以上是php中鍊錶和陣列的差別是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn