十字链表实现稀疏矩阵加法教程

稀疏矩阵的加法逻辑其实不复杂,用十字链表来做,逻辑更清晰,效率也挺高的。十字链表的横纵双指针结构,适合稀疏矩阵那种“非零值少,位置分散”的情况。

实现的时候有点像在做“归并”,你从每一行的行表头开始,找到矩阵 A矩阵 B当前行的非零节点,比一比、合一合。要么修改v值,要么删节点,要么插新节点。听着麻烦?其实逻辑跑通后,起来还挺丝滑的。

文章里把四种合并情况都说得清楚,比如pa->j == pb->j时怎么更新,pa->j < pb>j时怎么继续推进,甚至连指针怎么改、前驱节点怎么找也讲了,比较细致。蛮适合你想自己撸一遍实现的人。

如果你最近刚好在搞稀疏矩阵链表结构或者单纯想理清十字链表的插删改查,建议你看看这个教程,对着逻辑写一遍,收获还挺多的哦。

延伸阅读也有,比如稀疏矩阵相加运算:十字链表法这篇,跟本文关系挺紧的。

ppt 文件大小:5.3MB