稀疏矩阵的三元组表是如何表示的?
由于稀疏矩阵非零元素的分布一般是没有规律的,因此在存储非零元素时,除了存储非零元素的值之外,还必须同时存储该元素的行、列位置(即下标),所以可用一个称为三元组(i,j,αij)来唯一确定一个非零元素。 如果将表示稀疏矩阵非零元素的三元组按行优先的顺序排列,则可得到一个其结点均为三元组的线性表,将这种线性表的顺序存储结构称为三元组表。 三元组表的类型定义如下: #define MaxSize 1000 //假设非零元素个数的最大为1 0 00个 typedef struct{ int i,j; //非零元素的行号、列号(下标) DataType v; //非零元素值 }TriTupleNode; typedef struct{ TriTupleNode data[MaxSize]; //存储三元组的数组 int m,n,t; //矩阵的行数、列数和非零元素个数 }TSMatri x; //稀疏矩阵类型 建立顺序存储稀疏矩阵的三元组表算法如下: void CreateTriTable(TSMatrix*b,int a[][5],int m,int n) { //建立稀疏矩阵的三元组表 int i,j,k=0; for(i=0;i