行逻辑链接的顺序表(压缩存储稀疏矩阵)详解

前面学习了如何使用三元组顺序表存储稀疏矩阵,其实现过程就是将矩阵中各个非 0 元素的行标、列标和元素值以三元组的形式存储到一维数组中。通过研究实现代码你会发现,三元组顺序表每次提取指定元素都需要遍历整个数组,运行效率很低。

本节将学习另一种存储矩阵的方法——行逻辑链接的顺序表。它可以看作是三元组顺序表的升级版,即在三元组顺序表的基础上改善了提取数据的效率。

行逻辑链接的顺序表和三元组顺序表的实现过程类似,它们存储矩阵的过程完全相同,都是将矩阵中非 0 元素的三元组(行标、列标和元素值)存储在一维数组中。但为了提高提取数据的效率,前者在存储矩阵时比后者多使用了一个数组,专门记录矩阵中每行第一个非 0 元素在一维数组中的位置。

行逻辑链接的顺序表(压缩存储稀疏矩阵)详解_第1张图片

                                                                     图 1 稀疏矩阵示意图


图 1 是一个稀疏矩阵,当使用行逻辑链接的顺序表对其进行压缩存储时,需要做以下两个工作:

  1. 将矩阵中的非 0 元素采用三元

你可能感兴趣的:(数据结构与算法教程,数据结构C语言版教程!,行逻辑链接的顺序表,压缩矩阵,稀疏矩阵的压缩存储,C语言)