c - 稀疏矩阵乘法结构

标签 c

是否可以使用此结构将 2 个稀疏矩阵相乘?如果是这样,你能给我任何提示或正确的结构吗?

typedef struct node{
    int column;
    int value;
    int row;
    struct node *next;
} element;

最佳答案

是的,这可能是可能的,因为它似乎能够通过元素的链接列表来表达稀疏矩阵。每个元素将对应一个矩阵单元,并携带该单元的值。

当然,它对实际乘法没有任何帮助,因为实际乘法需要在此类列表中搜索要相乘和相加的元素。

我确信还有其他更高级的数据结构可以使乘法的实现更加高效。

对此数据结构的改进可能包括:

  • 保持元素按行和/或列排序,以便在搜索时进行一些优化。
  • 添加顶级Matrix结构可能有意义,例如它可以保存矩阵的整体尺寸(这将允许在相乘时更快地检查尺寸兼容性)。

关于c - 稀疏矩阵乘法结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44566386/

相关文章:

c - 如何用 Frama-C 证明 C stringCompare 函数的功能?

c - sscanf 读取一个字符而不是整个字符串 (mmap)

c - 在 Mac OS 上为 C 安装 LAPACK 和 BLAS 库

C程序——泰勒级数_长公式

CFSocketCallback 中无法访问 iOS 类属性

c++ - 如何在后台进程中处理来自 Windows 任务管理器的 "End Task"?

c++ - C++ DFS 中的迷宫回溯算法?

使用 OpenMP 进行 Cholesky 分解

c++ - c 中不兼容的指针类型警告?

c - 将代码上传到微处理器时,注释重要吗?