矩阵的转置,其实对于我来说还是很难的,在上课的时候也是理解了好久才最终明白,其实它用了一个很巧妙的方式,通过另一个结构体对于数据的记录,去读取这个矩阵,并且此处引入了一个压缩矩阵,极大的优化了存储空间,帮助计算机可以更好的运行。
#include <stdio.h>
#include <malloc.h>
typedef int elem;
/**
* A triple for row index, column index, and data.
*/
typedef struct Triple{
int i;
int j;
elem e;
} Triple, *TriplePtr;
/**
* A triple for row index, column index, and data.
*/
typedef struct CompressedMatrix{
int rows,columns,numElements;
Triple* elements;
} CompressedMatrix, *CompressedMatrixPtr;
/**
* Initialize a compressed matrix.
*/
CompressedMatrixPtr initCompressedMatrix(int paraRows, int paraColumns, int paraElements, int** paraData){
int i;
CompressedMatrixPtr resultPtr = (CompressedMatrixPtr)malloc(sizeof(struct CompressedMatrix));
resultPtr->rows = paraRows;
resultPtr->columns = paraColumns;
resultPtr->numElements = paraElements;
resu