稀疏矩阵的带行指针数组的二元组表示是更节省存储的存储表示。(1)写出带行指针数组的二元组表
稀疏矩阵的带行指针数组的二元组表示是更节省存储的存储表示。
(1)写出带行指针数组的二元组表示的类定义;
(2)编写一个算法,根据矩阵元素的行、列下标值i和j求矩阵元素;
(3)讨论这种方法和三元组表相比有什么优缺点。
稀疏矩阵的带行指针数组的二元组表示是更节省存储的存储表示。
(1)写出带行指针数组的二元组表示的类定义;
(2)编写一个算法,根据矩阵元素的行、列下标值i和j求矩阵元素;
(3)讨论这种方法和三元组表相比有什么优缺点。
带行表的三元组表是稀疏矩阵的一种 ()
A.顺序存储结构
B.链式存储结构
C.索引存储结构
D.散列存储结构
已知稀疏矩阵采用带行表的三元组表表示,其形式说明如下:
define MaxRow 100 //稀疏矩阵的最大行数
typedef struct{
int i,j,v; //行号、列号、元素值
}TriTupleNode;
typedef struct{
TriTupleNode data[MaxSize];
int RowTab[MaxRow+1]; //行表
int m,n,t; //矩阵的行数、列数和非零元个数
}RTriTupleTable; 下列算法f31的功能是,以行优先的顺序输入稀疏矩阵的非零元(行号、列号、元素值),建立稀疏矩阵的带行表的三元组表存储结构。请在空缺处填入合适内容,使其成为一个完整的算法。(注:矩阵的行、列下标均从1起计)
void f31(RTriTupleTable*R)
{ int i,k;
scanf("%d%d%d",&R—>m,&R—>n,&LR—>t);
R—>RowTab[1]=0;
k=1; //k指示当前输入的非零元的行号
for(i=0;[ ① ];i++)
{ scanf("%d%d%d",[ ② ],[ ③ ],&R—>data[i].v);
while(k<R->data[i].i)
{[ ④ ];
R—>RowTab[k]=i;
}
}
}
某稀疏矩阵如下:若该稀疏矩阵采用三元组表表示法,利用“一次定位快速转置”方法进行转置时,position数组的值依次是 。(用一个空格分开)
为了保护您的账号安全,请在“简答题”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!