陣列和鏈結串列比較

陣列的位址
假設
α 表示陣列起始位置, W 表示每一個陣列元素所佔的空間
一維陣列的表示
若陣列A宣告 A [ l1 … u1 ] 則位址公式為
LOC( A [ i ] )= α + ( i - l1 ) W
舉個例子
int A[3…7] ; α = 1000 ; W = 4 bytes
若要計算 A[5] 的位址
LOC(A[5])=1000+(5−3)⋅4=1000+2⋅4=1000+8= 1008
二維陣列的表示
陣列A若宣告為 A [ l1..u1 , l2..u2 ] 令 a = u1 - l1 +1 ; b = u2 - l2 +1
則為位址公式為 LOC( A [ i , j ] ) = α + ( i - l1 ) bW +( j - l2 ) W
舉個例子
int A [ 2..4 , 1..3 ] ; α = 1000 ; W = 4 bytes
若要計算 A [ 3,2 ] 的位址
LOC ( A [ 3,2 ] )= 1000 + ( 3 − 2 ) ⋅ 3 ⋅ 4 + ( 2 − 1 ) ⋅ 4
= 1000 + 1 ⋅ 12 + 1 ⋅ 4 = 1000 + 12 + 4 = 1016