稀疏矩阵相加运算:十字链表法
当采用三元组表存储稀疏矩阵时,相加运算可能导致非零元素位置变化。为了解决这一问题,建议使用十字链表存储结构。
十字链表建立算法:
- 建立表头循环链表:
- 输入行数、列数和非零元素个数 m、n 和 t。
- 建立 s 个行、列表头结点,s = max(m, n)。
- 使用 next 域将 s+1 个头结点组成循环链表。
- 生成表中结点:
- 对于每个非零元素 (i, j, v),生成一个结点并插入到第 i 行链表和第 j 列链表的正确位置。
算法复杂度:
- 建表头结点:O(s)
- 插入 t 个非零元结点:O(t * s)
- 总复杂度:O(t * s)
5.3MB
文件大小:
评论区