是否可以使用此结构将 2 个稀疏矩阵相乘?如果是这样,你能给我任何提示或正确的结构吗?
typedef struct node{
int column;
int value;
int row;
struct node *next;
} element;
最佳答案
是的,这可能是可能的,因为它似乎能够通过元素的链接列表来表达稀疏矩阵。每个元素将对应一个矩阵单元,并携带该单元的值。
当然,它对实际乘法没有任何帮助,因为实际乘法需要在此类列表中搜索要相乘和相加的元素。
我确信还有其他更高级的数据结构可以使乘法的实现更加高效。
对此数据结构的改进可能包括:
- 保持元素按行和/或列排序,以便在搜索时进行一些优化。
- 添加顶级
Matrix
结构可能有意义,例如它可以保存矩阵的整体尺寸(这将允许在相乘时更快地检查尺寸兼容性)。
关于c - 稀疏矩阵乘法结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44566386/