首页 > 试题广场 >

稀疏矩阵压缩的存储方法是?

[不定项选择题]
以下几种方式当中,稀疏矩阵压缩的存储方法是:()
  • 三元组
  • 二维数组
  • 散列
  • 十字链表
啥头像
三元组表示稀疏矩阵可大大节省空间,但是当涉及到矩阵运算时,要大量移动元素。

十字链表表示法可以避免大量移动元素。
节点结构如下:  down指向同列下一个节点,right指向同行下一个节点

矩阵部分表示如下:

编辑于 2015-12-17 14:25:11 回复(3)
答案 A
设m*n 矩阵中有t 个非零元素且t<<m*n,这样的矩阵称为稀疏矩阵。很多科学管理及工程计算中,常会遇到阶数很高的大型稀疏矩阵。如果按常规分配方法,顺序分配在计算机内,相当浪费内存的。为此提出另外一种存储方法,仅仅存放非零元素。但对于这类矩阵,通常零元素分布没有规律,为了能找到相应的元素,所以仅存储非零元素的值是不够的,还要记下它所在的行和列。于是采取如下方法:将非零元素所在的行、列以及它的值构成一个三元组(i,j,v),然后再按某种规律存储这些三元组,这种方法可以节约存储空间。


摘自: 稀疏矩阵—稀疏矩阵的三元组表存储http://c.biancheng.net/cpp/html/969.html, 我觉得讲明白啦
编辑于 2015-09-22 16:33:36 回复(8)
AD 数据结构C++版,王红梅编著,十一五国家级规划教材。稀疏矩阵可用三元组或十字链表,十字链表更适合矩阵的加法乘法等操作。
发表于 2015-09-01 21:29:49 回复(0)
稀疏矩阵的压缩方法主要有: 1:三元组顺序表 (行下标,列下标,值) 2:行逻辑链接的顺序表。 3:十字链表。
发表于 2018-08-08 15:24:17 回复(0)
答案是A
稀疏矩阵指的是矩阵中非零元素很少的矩阵,具体少到什么程度呢?非零元素所占比例小于等于5%称为稀疏矩阵。这个时候如果用二维数组储存就太浪费空间了。所以用三元组(行,列,值)储存其中的非零元素。一个三元组就可以唯一确定一个非零元素。一组三元组加上矩阵的行、列值就可以确定这个矩阵了。
发表于 2015-08-26 21:05:02 回复(0)
十字链表的形式大家可以理解成每一行是一个链表,而每一列又是一个链表。每个结点不止要存放i, j, e。还要存放它横向的下一个结点的地址以及纵向的下一个结点的地址。形成一个类似十字形的链表的结构。
发表于 2019-10-28 00:34:16 回复(0)

散列表的只能存一种下标,要么是矩阵的行标要么是列标,所以不能实现。


发表于 2019-09-13 08:39:50 回复(1)
A
存储稀疏矩阵中的非零元素:
将非零元素的值和它所在的行号、列号作为一个结点存放在一起,这样矩阵中的每一个非零元素就由一个三元组(行号、列号、元素值)唯一确定。
编辑于 2015-09-02 00:12:22 回复(0)
十字链表呢
发表于 2015-08-24 15:26:44 回复(0)
有好心人可以解释下散列吗
发表于 2018-09-15 17:00:43 回复(0)
稀疏矩阵压缩的存储方法:
1.三元数组存储(行,列,值)
2.十字链表(实在是太复杂了...)

发表于 2017-08-21 22:43:26 回复(0)
三元组难道不能变为二维数组么????
发表于 2015-09-21 08:55:35 回复(1)
A
发表于 2015-01-07 19:39:33 回复(0)
疑问,三元组的存储难道不是二维数组?
发表于 2018-02-07 12:28:02 回复(1)
空间浪费点,不是二维数组也可以存储么?
发表于 2015-09-16 21:09:01 回复(1)
A   (坐标x,坐标y,坐标值)
发表于 2015-08-26 21:04:56 回复(0)
散列表是根据数据元素的关键字而直接进行访问的数据结构。通俗地讲,就是散列表建立了关键字和存储地址之间地一种直接映射关系。这种直接映射关系通过选择的散列函数来完成。
发表于 2023-01-10 23:24:05 回复(1)
稀疏矩阵的压缩存储,数据结构提供有 3 种具体实现方式:
  1. 三元组顺序表;三元组(a,b,c) a:元素数值, b,c:矩阵中坐标
  2. 行逻辑链接的顺序表;多使用了一个 rpos 数组,从而提高了查找数组指定行中非 0 元素的效率
  3. 十字链表;
发表于 2022-10-26 21:17:00 回复(0)
选的CD,完全不记得了,三元组,散列是什么了
发表于 2022-08-31 20:45:02 回复(0)
稀疏矩阵可以用十字链表和三元组存储 节约空间
发表于 2021-07-21 22:43:14 回复(0)