void SumTSMatrix(TSMatrix A,TSMatrix B,TSMatrix *C) { int i=1,j=1; while(i<=A.t&&j<=B.t) { if(A.data[i].row<B.data[j].row) { EnterTSMatrix(C,A.data[i]); i++; } else if(A.data[i].row==B.data[j].row) { if(A.data[i].col<B.data[j].col) { EnterTSMatrix(C,A.data[i]); i++; } else if(A.data[i].col>B.data[j].col) { EnterTSMatrix(C,B.data[j]); j++; } else { if(A.data[i].e+B.data[j].e!=0) { A.data[i].e+=B.data[j].e; EnterTSMatrix(C,A.data[i]); } i++; j++; } } else { EnterTSMatrix(C,B.data[j]); j++; } } while(i<=A.t) { EnterTSMatrix(C,A.data[i]); i++; } while(j<=B.t) { EnterTSMatrix(C,B.data[j]); j++; } }写出这段程序的伪代码
时间: 2024-04-02 18:35:50 浏览: 117
TSMatrix.cpp
1. 初始化i和j为1
2. while循环,当i小于等于A的非零元素个数且j小于等于B的非零元素个数时执行以下操作:
a. 如果A的第i个元素的行号小于B的第j个元素的行号,则将A的第i个元素插入到C中,i加1
b. 如果A的第i个元素的行号等于B的第j个元素的行号,则执行以下操作:
i. 如果A的第i个元素的列号小于B的第j个元素的列号,则将A的第i个元素插入到C中,i加1
ii. 如果A的第i个元素的列号大于B的第j个元素的列号,则将B的第j个元素插入到C中,j加1
iii. 如果A的第i个元素的列号等于B的第j个元素的列号,则执行以下操作:
1. 如果A的第i个元素的值加上B的第j个元素的值不等于0,则将A的第i个元素的值加上B的第j个元素的值,再将A的第i个元素插入到C中,i和j都加1
2. 否则,i和j都加1
c. 如果A的第i个元素的行号大于B的第j个元素的行号,则将B的第j个元素插入到C中,j加1
3. 如果i小于等于A的非零元素个数,则将A的第i个元素插入到C中,i加1
4. 如果j小于等于B的非零元素个数,则将B的第j个元素插入到C中,j加1
阅读全文