运算受限的线性表
<h1>数组</h1>
数组是线性表的一种推广。
二维数组a[m][n],每个元素占k个存储单元,以行序为主序的存储中,a[i][j]的位置=i*n+j,存储地址loc[i,j]=loc[0,0]+(i*n+j)*k。
<h1>矩阵的压缩存储</h1>
对称矩阵:满足n阶方阵中a[i,j]=a[j,i],以行为主序存储下三角中的元素,a[i,j]的位置K:
当i>=j,即下三角中的元素,k=i(i+1)/2+j;
当i<j,即上三角中的元素,k=j(j+1)/2+i;
三角矩阵:上三角或下三角全为固定值。
上三角矩阵中前i行的元素个数=i(2n-i+1)/2。a[i,j]的位置K:
当i<=j,即上三角中的元素,k=i(2n-i+1)/2+j-i;
当i>j,即下三角中的元素,k=n(n+1)/2;
下三角矩阵中a[i,j]的位置K:
当i>=j,即下三角中的元素,k=i(i+1)/2+j;
当i<j,即上三角中的元素,k=n(n+1)/2;