数组和广义表

数组

关于数组,特别是一维数组,大家应该都特别熟悉,是由一组数据类型相同的元素组成的在内存中按照顺序存储的数据结构


二维数组可以看看成是一维数组中每个元素是数组,二维数组可以规定按行存储,也可以规定按列存储。这与语言有关,JAVA是按照行存储的

数组有一个特点是,如果我们知道首元素的地址和数组中每个元素所占内存的大小,那么就可以得到任意元素在内存中的地址

矩阵

普通矩阵

普通矩阵被视为二维数组进行存储

特殊矩阵

常见的特殊矩阵有:对阵矩阵、三角矩阵、稀疏矩阵。由于这些矩阵具有特殊性,在存储过程中我们充分考虑这些矩阵的特点以节约存储空间

对阵矩阵



根据上面的分析,我们可以用一个n(n-1)/2的数组来存储n*n的对角矩阵

三角矩阵和对阵矩阵很相似,需要存储的元素包括上三角(下三角)以及另外的常数

稀疏矩阵

如果一个矩阵中非零元素很少,那么这个矩阵就是稀疏矩阵,只需要把这些元素进行存储即可。

常见的稀疏矩阵的存储方法有:三元组法、行逻辑链接的顺序表以及十字链表法

这里只介绍第一种

三元组法

             


如上图所示,我们使用数组的数组或者对象数组很容易实现三元组表示法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值