数组的元素位置与存储(详)

数组中元素的地址

 

           LOC(0)=a, i=0

LOC(i) =

           LOC(i-1)+L=a+i*L, i>0

           

二维数组的行序优先表示

 设数组开始存储位置LOC(0,0),存储每一个元素需要L个存储单元,每行n元素,

 数组元素a[i][j]的存储元素是:LOC(i,j)=LOC(0,0)+(n*i+j)*L

 

 

特殊矩阵的压缩存储:

  什么是压缩存储?

  若多个元素的值都相同,则只分配一个元素值的存储空间,且零元素不占存储空间

 什么样的矩阵能够压缩?

  一些特殊矩阵,如:对称矩阵,对角矩阵,三角矩阵,稀疏矩阵等。

 什么叫稀疏矩阵?

 矩阵中非零元素的个数较少(一般少于5%) 

 

  1.对称矩阵的存储结构:52e6a057b1534c2d92a4bebd36ded161.jpg

 

   对称矩阵上下三角中的元素数均为:n(n+1)/2  

   可以以行序为主序将元素存放在一个一维数组sa[n(n+1)/2]中

   例如:以行序为主序存储下三角:

     a11 a21 a22 a31 a32 ... an1...ann 

  k= 0 1 2 3 4 n(n-1)/2 n(n+1)/2-1

  

  2.三角矩阵75d321c6a7314e7ebf86e5c06b434c80.jpg

 

  特点:对角线以下(或者以上)的数据元素(不包括对角线)全部为常数c

  (1)存储方法:重复元素c共享一个元素存储空间,共占用n(n+1)/2+1个元素空间:sa[1..n(n+1)/2+1] 

  上三角矩阵: 

      (i-1)*(2n-i+2)/2+j-i+1 i<=j

  k=

      n(n+1)/2+1 i>j 

   下三角矩阵:

      i*(i-1)/2+j i>=j

  k=   

   n(n+1)/2+1 i<j

   

   (2)存储方法:以对角线的顺序存储 

831767fc1a91435983fbe70af34f9d00.jpg 3.对角矩阵(带状矩阵)cea0e37ca0304cad9e8fb48b6093bfc7.jpg

  特点:在n*n的方阵中,所有非零元素都集中在以主对角线为中心的带状区域中,区域外的值全为0,则称为对角矩阵。

  常见的有三对角矩阵,五对角矩阵,七对角矩阵等。

  

稀疏矩阵的压缩存储方法————顺序存储结构 (如图)

三元组顺序表  3138e8170132443dbe523532009fd972.jpg

 稀疏矩阵的链式存储结构:(如图)

十字链表0866531a57e541d99fde7ebe38bd2c8c.jpg

 

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值