稀疏矩阵相加运算:十字链表法

当采用三元组表存储稀疏矩阵时,相加运算可能导致非零元素位置变化。为了解决这一问题,建议使用十字链表存储结构。

十字链表建立算法:

  1. 建立表头循环链表:
  2. 输入行数、列数和非零元素个数 m、n 和 t。
  3. 建立 s 个行、列表头结点,s = max(m, n)。
  4. 使用 next 域将 s+1 个头结点组成循环链表。
  5. 生成表中结点:
  6. 对于每个非零元素 (i, j, v),生成一个结点并插入到第 i 行链表和第 j 列链表的正确位置。

算法复杂度:

- 建表头结点:O(s)

- 插入 t 个非零元结点:O(t * s)

- 总复杂度:O(t * s)

ppt 文件大小:5.3MB