本篇文章的代码基于【数据结构】【严蔚敏】【清华大学】
不是很想分函数来一遍解释
信息基本上都在注解里 直接上完整代码好了#include#include #define MAXSIZE 100 // 非零元个数的最大值typedef int ElemType; typedef int Status; #define OK 1#define N 4struct Triple { int i,j; // 行下标,列下标 ElemType e; // 非零元素值};struct TSMatrix { Triple data[MAXSIZE+1]; // 非零元三元组表,data[0]未用 int mu,nu,tu; // 矩阵的行数、列数和非零元个数}; // 带行连接信息的三元组表 typedef struct{ Triple data[MAXSIZE+1]; // 非零元三元组表,data[0]未用 int rpos[MAXSIZE+1]; // 各行的第一个非零元的位置表 int mu,nu,tu; // 矩阵的行数、列数和非零元个数}RLSMatrix;Status TransposeSMatrix(TSMatrix M,TSMatrix &T){ // 求稀疏矩阵M的转置矩阵T。算法5.1 // 时间复杂度为O(nu*tu) // 当tu和mu*nu同一个数量级时,时间复杂度会变为O(mu*nu^2) // 因此适用于tu<