C++数据结构——矩阵的压缩存储

Posted eyes++

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++数据结构——矩阵的压缩存储相关的知识,希望对你有一定的参考价值。

  • 矩阵是许多科学以及工程中研究和应用的数学对象,实际应用中常常会用到高阶矩阵,因而占用大量空间,但是所涉及的矩阵中常常有较多元素为0,这也被称为稀疏矩阵,另外还有一些矩阵的元素值分布有一定的规律,这类矩阵被称为特殊矩阵
  • 压缩储存的基本思想:
    1. 为多个值相同的元素只分配一个储存空间
    2. 对零元素不分配存储空间

一:特殊矩阵的压缩存储

  1. 对称矩阵
    对称矩阵因此储存对称矩阵可只储存下三角的值

展示展示

  1. 三角矩阵
    展示因此只需要储存上三角/下三角的内容,以及另一部分的C值:
    展示展示

  2. 对角矩阵
    展示展示

二:稀疏矩阵的压缩存储

展示三元组表法(缺点:三元组表是顺序存储,对内容进行增删改时很不方便):
展示展示展示十字链表法(增删改相对于顺序存储更方便):

展示展示

以上是关于C++数据结构——矩阵的压缩存储的主要内容,如果未能解决你的问题,请参考以下文章

c++对称矩阵的压缩存储

数据结构(C++)笔记:04.字符串与多维数组

C++实现对称矩阵的压缩存储

C++实现稀疏矩阵的压缩存储转置快速转置

C++实现矩阵压缩

C++ 练气期之二维数组与矩阵运算