三元组稀疏矩阵表示-C语言数组与广义表结构
三元组表示的稀疏矩阵结构,挺适合用在非零元素少的大矩阵场景。代码写法清爽,核心结构只有两个,一个是单个非零元素的Triple
,另一个是整个矩阵的TMatrix
。你只需要维护一个数组,把这些三元组塞进去就行,操作起来比较直接。
数组版的稀疏矩阵,你要是常操作稀疏数据,这种方式挺省事的。Triple
结构里用row
、col
来标位置,value
表示值,再配合个最大长度MAX_SIZE
做限制,空间管理也比较清晰。
矩阵信息放在TMatrix
结构里,里面有rn
、cn
、tn
分别表示行数、列数和非零元素个数。你用数组data[MAX_SIZE]
存放三元组就能搞定,data[0]
通常留空备用。这种写法可移植性也不错,结构一眼就能看明白。
另外推荐你顺带看看相关操作,比如三元组加法和转置的实现,逻辑清晰,稀疏矩阵运算还挺方便。
如果你想更深入理解线性表结构,像线性表源码或Java 链表版本也可以瞅瞅,思路上都挺通用。
,这套结构挺适合初学者练手,也方便你日后搞优化。如果你打算写个矩阵运算库,用它起步也不亏。
682KB
文件大小:
评论区