04笔记 数据结构——数组—— 基于《数据结构》(C语言版) 第2版 (严蔚敏等)和《数据结构教程》蔡子经,施伯乐

数组的顺序存储

一维数组的每个元素由一个值和下标确定
对C语言来说
a[0]……a[t-1]是一个有序数列,令s = sizeof(datatype) ,表示一个数组占用的储存单元个数

元素a[0]
地址 &a[0]
地址计算公式 &a[i] = &a[0] + i×s

二维数组表示
在这里插入图片描述
但本质上还是拿一段连续的内存来表示

于是我么不难得到地址公式
&a[i][j] = &a[0][0] + (i×t + j)s

三维数组依次类推
&a[i][j][k] = &a[0][0][0] + (i×s2×s3 + j×s3)s

三角矩阵
在这里插入图片描述
为了省空间,我们不开n×n的数组,只开n(n-1)/2

&a[i][j] = a[0][0] + [(i(i+1))/2 + j ]s

带状矩阵
在这里插入图片描述
在存贮带状矩阵时,对于带状区域外的元素,即满足li-j I >b 的 a;i不存贮,而只存贮带
状区域内的(2b+l)n-b(b+ 1)个元素。为了使地址计算公式简单,通常并不是把这些元素

顺序地存贮在连续的(2b+ l)n-b (b+ 1)个存贮单元中,而是按如下方法存贮:除头一行和
最后一行外,每行都当作有(2b+1)个元素,将带状矩阵按行序列序存贮在 (2b+l )n-2b个
存贮单元中。 按照这种方法存贮,多花费掉 b(b-1)个存贮单元,这些空留的b(b-1)个存
贮单元,我们决不会进行存取。 图4. 1. 7 给出半带宽为 3 的 6 阶带状矩阵。矩阵外的CD,…,®
是为了补足每行均有七个元素,头一行和最后一行不用增补。增补的元素仅占用存贮单元,
我们决不会对它进行存取。按照上述的顺序存贮方法,图4. 1, 7 中的元素是按如下的次序进
行顺序存贮:
在这里插入图片描述

稀疏矩阵

利用三元组来进行矩阵表示
struct dot
{
x,
y,
data
}
这样我们可以用链表来把矩阵来表示出来,在大部分都是0的数组中可以减少空间损耗

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值