已知稀疏矩阵采用带行表的三元组表表示,其形式说明如下: #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,&R->t); R->RowTab[1]=0; k=1; //k指示当前输入的非零元的行号 for(i=0; ① ;i++) { scanf(″%d %d %d″, ② , ③ ,&R->data[i].v); while(kdata[i].i) { ④ ; R->RowTab[k]=i; } } } ① ② ③ ④
|