主要介绍的稀疏矩阵的存储方式。没必要存储矩阵的每个点。只需存储不为0的值的点。使用一个数组来代表所有的列,一个链式表来代表给定列中的不为0的元素
该链式表可以定义成
struct Node p{
int pointnum;
int row;
Node *next
}
10.3
介绍了两个矩阵a,b,a与b的维度相同均为150*150。均表示均为表示两点之间距离的矩阵,比如a[i[[j]代表点i与点j之间的距离。很明显a,b矩阵为对称阵,且对角线元素为0
现用一个矩阵c来存储矩阵a与b
c的一块类似
————————
0 b[0,1] b[0,2] b[0,3]
a[1,0] 0 b[1,2] b[1,3]
a[2,0] a[2,1] 0 b[2,3]
a[3,0] a[3,1] a[3,2] 0
即矩阵c的元素为
i>j时
c[i][j]=a[i][j]
i<j时
c[i][j]=b[i][j]
i==j
c[i][j]=0
所以矩阵a的元素可以从c的元素中还原
a[i][j]=c[max(i,j)][min(i,j)]
矩阵b的元素可以以类似方式从c中还原