`

稀疏矩阵三元组存储

 
阅读更多

若一个稀疏矩阵有T个非零元素,则需要T+1行的三元组来表示稀疏矩阵.

一般对于M*N的矩阵来说.只要满足(T+1)*3<=M*N

这个条件那么使用三元组存储可以节省空间.

 

稀疏矩阵转换三元组算法

package Xishu;

public class XtoS {
	public static void main(String args[]) {
		int[][] data = { { 0, 0, 0, 0, 0, 0 }, { 0, 3, 0, 0, 0, 0 },
				{ 0, 4, 0, 0, 0, 0 }, { 0, 0, 9, 0, 0, 0 },
				{ 0, 0, 0, 0, 0, 0 } }; // 假设一个5*6矩阵
		int comparessdata[][] = new int[10][3];
		int index;
		int i, j;
		index = 0;
		// 输出矩阵中所有元素
		for (i = 0; i < 5; i++) {
			for (j = 0; j < 6; j++) {
				System.out.print("" + data[i][j] + "");
			}
			System.out.println("");
		}
		for (i = 0; i < 5; i++) {
			for (j = 0; j < 6; j++) {
				if (data[i][j] != 0) {
					index++;
					comparessdata[index][0] = i;
					comparessdata[index][1] = j;
					comparessdata[index][2] = data[i][j];
				}
			}
		}
		// 给三元组第0行赋值
		comparessdata[0][0] = 5;
		comparessdata[0][1] = 6;
		comparessdata[0][2] = index;
		// 输出三元组
		for (i = 0; i < index + 1; i++) {
			for (j = 0; j < 3; j++) {
				System.out.print("" + comparessdata[i][j] + "");
			}
			System.out.println("");
		}
	}

}

 

 

 

分享到:
评论

相关推荐

    稀疏矩阵 c++ 三元组表

    根据提供的"2013_428_practise1"文件名,我们可以推测这是一个关于2013年4月28日的编程练习项目,可能包含了使用C++实现稀疏矩阵三元组表的具体代码。在这个项目中,开发者可能设计了一个窗体应用程序,用户可以输入...

    稀疏矩阵的三元组程序

    本程序专注于实现稀疏矩阵的三元组存储方法,这是一种常见的稀疏矩阵表示方式。 三元组(Triplet)存储是稀疏矩阵的一种基本表示形式,它将矩阵中的每个非零元素存储为一个三元组(Row,Column,Value),即元素...

    稀疏矩阵和三元组的基础理论

    三元组是稀疏矩阵的一种表示方式,它由矩阵中每个非零元素的行号(i)、列号(j)以及对应的元素值(aji)组成。通过这种方式,我们可以仅存储非零元素的信息,而不是整个矩阵。三元组按照行号为主序、列号为辅序排序,...

    稀疏矩阵三元组形式转置

    以下是对“稀疏矩阵三元组形式转置”算法的详细解释和优化。 首先,理解三元组形式。假设我们有一个稀疏矩阵,其中的非零元素用三元组 (i, j, v) 表示,其中 i 是行索引,j 是列索引,v 是对应位置的值。例如,一个...

    稀疏矩阵的三元组顺序表存储表示及其转置算法

    //稀疏矩阵的三元组顺序表存储表示 #define MAXSIZE 100 //非零元个数最大为100 typedef struct {int i,j; //非零元的行下标和列下标 ElemType e; //非零元 }Triple; typedef struct {Triple data[MAXSIZE+1]; //...

    稀疏矩阵(采用三元组表顺序存储)

    TSMatrix(稀疏矩阵(采用三元组表顺序存储)) 可能是一个实现这些操作的代码库或程序,提供了对稀疏矩阵基本操作的支持。理解和掌握这些知识对于提升IT专业人士在数据处理和算法设计上的能力至关重要。

    利用三元组表对稀疏矩阵实现加法、减法及转置运算

    三元组表是一种用来存储稀疏矩阵的有效方式,每个非零元素通过一个三元组 (i, j, e) 来表示,其中 i 和 j 分别代表该元素在原矩阵中的行号和列号,而 e 是该位置上的值。此外,还需要记录矩阵的行数 mu、列数 nu 和...

    稀疏矩阵三元组表加法和转置

    本程序以三元组表存储稀疏矩阵,可进行矩阵相加及转置运算。 TSMatrix A,B,C,D; cout请输入矩阵A和B的行数 列数 "; cin&gt;&gt;A.m&gt;&gt;A.n; B.m=C.m=D.m=A.m; B.n=C.n=D.n=A.n; cout请输入A中的非零元素个数: "; ...

    三元组实现稀疏矩阵加减乘

    三元组表示法是一种用于表示稀疏矩阵的数据结构,它通过记录非零元素的位置和值来实现矩阵的存储。对于一个稀疏矩阵而言,每个非零元素可以用一个三元组 (i, j, e) 来表示,其中 i 和 j 分别是该元素的行号和列号,...

    稀疏矩阵的三元组压缩存储方法

    稀疏矩阵不同与其它矩阵,相同元素或0元素较多,采用普通矩阵的存储方法浪费的空间较大,采用三元组压缩存储,可以节省较多的空间 这是学了数据结构后自己编写的一个小程序。 采用C语言实现稀疏矩阵的简单操作! 本...

    稀疏矩阵三元组的快速转置(VC++源程序)

    在VC++环境下,编程实现稀疏矩阵三元组的快速转置涉及到以下几个关键知识点: 1. **稀疏矩阵的三元组表示**: - 每个非零元素在三元组中用三个整数表示:(行索引, 列索引, 值)。 - 通常使用动态数组或链表存储...

    稀疏矩阵转置_clearlybgo_稀疏矩阵转置_稀疏矩阵_

    下面我们将详细探讨稀疏矩阵的概念、三元组存储结构以及转置操作。 稀疏矩阵是指非零元素远少于矩阵总元素数的矩阵。在实际应用中,如图形学、数值计算等领域,这类矩阵很常见。为了高效存储和处理这些矩阵,通常...

    三元组稀疏矩阵乘法分析

    1. **TripleSMatrix 类定义**:定义了一个表示稀疏矩阵的类`TripleSMatrix`,其中包含了一个二维数组`triple`用于存储所有非零元素的三元组,以及行列数和非零元素个数等信息。 2. **实例化稀疏矩阵**:创建了两个`...

    稀疏矩阵的存储和乘法

    三元组存储方式简单直观,将每个非零元素用一个三元组 (行号, 列号, 值) 表示,然后把这些三元组存储在一个链表或者数组中。但这种方式并不利于矩阵运算,因为需要遍历所有元素。相比之下,压缩存储方式更适用于计算...

    稀疏矩阵的压缩存储和转置

    - 使用`TSMatrix`结构体来存储整个稀疏矩阵的信息,包括行数`rows`、列数`cols`、非零元素个数`num`以及`Triple`类型的数组`data`用于存储每个非零元素对应的三元组。 #### 知识点三:稀疏矩阵的压缩存储 - **目的...

    稀疏矩阵的加减-三元组C实现

    2. **三元组存储法**:在实现稀疏矩阵时,使用三元组列表存储非零元素。每个三元组包含三个元素:行索引、列索引和对应的数值。这种存储方式便于进行矩阵的加减运算。 3. **稀疏矩阵的加减运算**:两个稀疏矩阵相加...

    稀疏矩阵转置

    本问题主要关注如何实现稀疏矩阵的转置,并利用三元组存储结构来表示和操作矩阵。 稀疏矩阵是指大部分元素为零的矩阵,为了节省存储空间和提高计算效率,我们通常不存储这些零元素,而是采用特定的数据结构来存储非...

    数据结构-三元组稀疏矩阵求和函数

    为了优化存储和计算,稀疏矩阵采用**三元组(Triple)**形式存储非零元素,每个三元组由行号、列号和元素值组成。 #### 三元组稀疏矩阵加法详解 本文档提供了一个基于三元组的稀疏矩阵加法实现示例,该方法适用于...

    稀疏矩阵运算器加法和减法运算(三元组)

    对于稀疏矩阵而言,三元组是一种常见的存储格式。每个非零元素通过一个三元组 `(i, j, e)` 来表示,其中 `i` 和 `j` 分别是该元素所在的行号和列号,而 `e` 是该元素的具体数值。例如,在一个稀疏矩阵中,如果第3行...

    三元组稀疏矩阵快速转置C语言算法

    为了节省存储空间,可以采用**三元组表示法**来存储稀疏矩阵。一个三元组(i, j, aij)代表矩阵中的一个非零元素,其中i和j分别表示该元素的行号和列号,aij则是该元素的值。例如,对于上述5x6的稀疏矩阵,其非零元素...

Global site tag (gtag.js) - Google Analytics