(8)数组

数组和广义表可以看成是一种扩展的线性数据结构
特殊性不像栈和队列对数据元素的操作受限制
反应在数据元素的构成上面

1.数组的定义和运算

高级语言一般都支持数组这种数据类型

  • (1)数组的定义
    从逻辑结构上讲,数组可以看作一般线性表的扩充
    一维数组就是线性表,二维数组可以看作其数据元素就是一维数组的线性表
    多维数组可以看作:行向量线性表、列向量线性表(和线性代数很相似)
    数组中的每一个元素由一个值和一个下标来表述
    值代表数组中元素的数据信息
    下标来描述改元素在数组中的相对位置
    数组的维数不同,描述其相对位置的下标个数也不同
  • (2)数组的运算
    数组是一组有固定个数的元素的集合,对数组的操作本质就是地址计算的问题
    获得特定位置的元素值
    修改特定位置的元素值
    数组的抽象数据类型定义

2.数组的顺序存储和实现

对于数组而言,采用顺序存储比较合适
在计算机内部,内存储器的结构是一维的
一维数组可以直接采用顺序存储,用一维的内存存储表示多维数组

  • (1)按行存储
  • (2)按列存储
  • (3)一维数组地址的计算
    A=(a1,a1,…,ai,…,an)
loc(A[i])=loc(A[1])+(i-1)*size
  • (4)二维数组地址的计算
    假设每个元素只占一个存储单元
loc(A[i][j])=loc(A[1][1])+n*(i-1)+(j-1)==

3.特殊矩阵的压缩存储

矩阵是科学计算、工程数学
只存储部分元素,提高存储空间的利用率

  • (1)规律分布的特殊矩阵
    三角矩阵:上三角矩阵、下三角矩阵、对称矩阵
    带状矩阵
  • (2)稀疏矩阵
    矩阵中大多数元素都位0
    稀疏矩阵的三元组表示法:行+列+值(只存储非0元素)
    稀疏矩阵的链式存储结构:十字链表
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值