7-1 三元组表矩阵的转置
时间: 2024-06-12 11:11:23 浏览: 174
矩阵的转置
三元组表矩阵的转置是指将一个矩阵按照行列互换的方式进行转置,然后将转置后的矩阵以三元组表的形式进行存储。具体实现方法如下:
1. 首先将矩阵的行列维数互换,即将原矩阵的行数赋值给新矩阵的列数,将原矩阵的列数赋值给新矩阵的行数。
2. 然后遍历原矩阵的每个非零元素,将其行列下标互换,即原矩阵中的(i,j,e)变为新矩阵中的(j,i,e)。
3. 最后对新矩阵中的三元组按照行列下标的大小进行排序,以保证三元组顺序表的有序性。
下面是一个示例代码:
```
void transposeTSMatrix(TSMatrix M, TSMatrix &T) {
T.mu = M.nu;
T.nu = M.mu;
T.tu = M.tu;
if (T.tu) {
int q = 1;
for (int col = 1; col <= M.nu; col++) {
for (int p = 1; p <= M.tu; p++) {
if (M.data[p].j == col) {
T.data[q].i = M.data[p].j;
T.data[q].j = M.data[p].i;
T.data[q].e = M.data[p].e;
q++;
}
}
}
sort(T.data + 1, T.data + T.tu + 1, cmp);
}
}
```
阅读全文