稀疏矩阵三元组乘法

您所在的位置:网站首页 带行表的三元组表02335 稀疏矩阵三元组乘法

稀疏矩阵三元组乘法

2024-01-12 21:28| 来源: 网络整理| 查看: 265

#include #include using namespace std; #define MaxSize 100 int M,N; typedef struct { int r; int c; int d; //元素值 }TupNode; //三元组定义 typedef struct { int rows; int cols; int nums; //非零元素个数 TupNode data[MaxSize]; }TSMatrix; //三元组顺序表定义 /void CreatMat(TSMatrix &t,int a[100][100],int M,int N) { int i,j; t.rows=M; t.cols=N; t.nums=0; for(i=0;i if(a[i][j]!=0) //只存储非零元素 { t.data[t.nums].r=i; t.data[t.nums].c=j; t.data[t.nums].d=a[i][j]; t.nums++; } } } } bool Value(TSMatrix &t,int x,int i,int j) //将i行j列元素替换为x 分以前就是0或者不是0 { int k=0,k1; if(i>=t.rows||j>t.cols) return false; while (kt.data[k].r) k++; //因为data[]里边存放的顺序就是i从小到大,根本不用考虑小于的情况 while (kt.data[k].c) k++; if(t.data[k].ri &&t.data[k].cj) //存在这样的元素 如果为零是不会存储到data中的; t.data[k].d=x; else { for(k1=t.nums-1;k1>=k;k1–) { t.data[k1+1].r=t.data[k1].r; t.data[k1+1].c=t.data[k1].c; t.data[k1+1].d=t.data[k1].d; } t.data[k].r=i; t.data[k].c=j; t.data[k].d=x; t.nums++; } } / void DispMat(TSMatrix t) //打印 { int i; if(t.nums



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3