北航軟件工程專業考研991數據結構總結:
三、數組
1.一維數組和二維數組的存儲;
2.矩陣的壓縮存儲的基本概念;
3.對稱矩陣、對角矩陣以及三角矩陣的壓縮存儲。
數組:序列和值的偶對
1、一位數組和二維數組的存儲
一維數組的存儲:a[1] + (n-1) i
二維數組的存儲:
行序存儲:按行存儲,先存第一行 a[i][j] = a[1][1] + (i-1)n + j-1
列序存儲:按列存儲,先存第一列 a[i][j] = a[1][1] + (j-1)m + i-1
2、矩陣的壓縮存儲的基本概念
對多個值相同的元素或者分佈有規律的元素分配儘可能少的空間,而對0元素不分配存儲空間
3、對稱矩陣,對角矩陣以及三角矩陣的壓縮存儲
對稱矩陣:a[i][j] = a[j][i] 0 <= i,j <= n
存儲方式:只存儲對角線和對角線右上三角的元素,需要 n(n+1)/2 個存儲空間 1 + 2 +...+n
元素讀取: i > j i*(i-1)/2 + j-1
j > i j*(j-1)/2 + i-1
對角矩陣:非0元素集中在主對角線兩邊,其餘元素爲0
以3對角矩陣舉例:元素有 n + n-1 + n-1 = 3n-2 個元素
存儲方式:按行存儲,不分配0元素
元素讀取:2 * i + j - 3
稀疏矩陣:0元素較多的矩陣
存儲方式:三元組 (i, j, v),第i行j列值爲v的元素
特殊的三元組:(m,n,t),表示總行數m,總列數n,總非0元素的個數
t個非0元素的稀疏矩陣用 t+1 個三元組表示,其中,第一個表示總行數,列數,總非0元素的個數,第二個到t+1個表示t個非0元素的信息