三元组顺序表不是顺序存储结构吗?那为什么不满足顺序存储结构的随机存取呀,行列数值信息不是都顺序排列在三元组里面吗,那三元组顺序表为什么不能随机存取
4条回答 默认 最新
开发技术控 2023-05-25 17:52关注该回答引用ChatGPT
三元组顺序表本质上是一种顺序存储结构,它的三元组数据是顺序排列的。但是,它不能支持随机存取的主要原因是:
三元组顺序表存储的是行列值信息,而不是直接存储矩阵元素。也就是说,它存储的不是a[i][j]这个元素的值,而是记录(i, j, a[i][j])这个三元组。
所以,如果要访问a[i][j]这个元素,我们需要先找到包含这个元素信息的三元组(i, j, a[i][j])。但是三元组是顺序排列的,我们无法通过i和j直接定位到对应的三元组。这就导致无法实现随机存取。
反观标准的二维数组,它是按行序分配内存的,所以如果知道i和j就可以直接定位到a[i][j],实现随机存取。
举个例子更易理解:
三元组顺序表:
(0, 0, 1) (0, 1, 2) (1, 0, 3) (1, 1, 4)
要访问a[1][1],我们首先要找到三元组(1, 1, 4),这需要顺序查找,不能随机定位。
标准二维数组:
a[0][0] a[0][1]
a[1][0] a[1][1]
我们知道a[1][1]的位置,可以直接访问,实现随机存取。
所以,综上可知:
三元组顺序表之所以不能随机存取,是因为它存储的不是矩阵元素的值,而是记录矩阵元素的三元组信息。我们无法通过行列索引i和j直接确定三元组的位置。
而标准二维数组之所以支持随机存取,是因为它直接存储矩阵元素,我们可以通过i和j直接定位到元素位置评论 打赏 举报解决 2无用