数据结构-矩阵

导言

数据结构中,主要讨论如何在节省存储空间的情况下使矩阵的各种运算能高效地进行。

有些矩阵存在很多值相同的元素或者0元素,这时为了节省空间,就可以对这种矩阵进行压缩。压缩的原则是:为多个值相同的元素只分配一个存储单元,0元素不分配存储单元。

用于压缩的矩阵有特殊矩阵和稀疏矩阵

一、特殊矩阵

如果矩阵中的元素的分布有一定规律,称之为特殊矩阵。

常见的特殊矩阵有对称矩阵、三角矩阵、对角矩阵。

1.1 对称矩阵

若矩阵An*n中的元素特点是a[ij]=a[ji],则称之为n阶对称矩阵。

对称矩阵的每一对元素占用一个存储单元,那么对于n阶矩阵,可以压缩到n(n+1)/2个元素的存储单元。如下:

 若以行为主序存储下三角中的元素,以一维数组B[n(n+1)/2]作为n阶对称矩阵A的压缩存储空间,那么B[k](1≤k≤n(n+1)/2)与矩阵元素a[ij]之间的对应关系如下:

 1.2 对角矩阵

对角矩阵是指矩阵中的非0元素都集中在以主对角线为中心的带状区域。也就是除了主对角线和直接在对角线上、下方若干条对角线上的元素除外,其余 的元素均为0。如下为n阶三对角矩阵:

 若以行为主序将n阶三对角矩阵An*n的非0元素存储在一维数组B[k](1≤k≤3*n-2)中,则元素位置之间的对应关系为:k=3*(i-1)+j-i+1+1 = 2i+j-2。

二、 稀疏矩阵

在一个矩阵中,如果非0元素的个数远远小于0元素的个数,并且非0元素的分布也没有规律,就称这样的矩阵为稀疏矩阵。

稀疏矩阵存储时需要把非0元素的位置同时存储。可以用三元组(i,j,a[ij])表示。常用的三元组表的链式存储结构是十字链表。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值