【数据结构】稀疏矩阵运算器(加、减、乘)

问题描述

稀疏矩阵是指那些多数元素为零的矩阵,利用“稀疏”特点进行存储和计算可以大大节省存储空间,提高计算效率。实现一个能进行稀疏矩阵基本运算的运算器

基本要求

以“带行逻辑连接信息”的三元组顺序表表示系数矩阵,实现两个矩阵相加、相减和想乘的运算。稀疏矩阵的输入形式采用三元组表示,而运算结果的矩阵以通常阵列形式列出

运行截图

数据输入

在这里插入图片描述
输出结果
在这里插入图片描述

代码实现

import java.util.Arrays;
import java.util.Scanner;

public class matrixTest {
   
    public static void main(String[] args) throws Exception {
   
        Matrix M = new Matrix();
        System.out.println("创建矩阵M:");
        M.CreateMatrix();
        Matrix N = new Matrix();
        System.out.println("创建矩阵N:");
        N.CreateMatrix();
        System.out.println("M:");
        M.PrintMatrix();
        System.out.println("N: ");
        N.PrintMatrix();
        Matrix Q = Matrix.add(M,N);
        System.out.println("M+N:");
        Q.PrintMatrix();
        Q = Matrix.sub(M,N);
        System.out.println("M-N:");
        Q.PrintMatrix();
        Q = Matrix.multiply(M,N);
        System.out.println("M*N: ");
        Q.PrintMatrix();
    }
}
class  Triple{
    //三元组
    int i,j;//非零元的行下标和列下标
    int e;//非零元的数值
}
class Matrix{
   
    Triple[] triples;//非零元三组表
    int mu,nu,tu;//矩阵的行数列数和非零元的个数
    int[] rops;//各行第一个非零元的在tripls数组里的位置表
    public void CreateMatrix() throws Exception{
   
        Scanner in = new Scanner(System.in);
        System.out.println("请输入矩阵的行数、列数,以及非零元的个数");
        mu = in.nextInt();
        nu = in.nextInt();
        tu = in.nextInt();
        if(tu>mu*nu) throw new Exception("输入非法,非零元个数大于矩阵元素的个数");
        triples = new Triple[tu+1];
        Arrays.fill(triples,null);
        rops = new int[mu
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值