用三元组表实现稀疏矩阵的转置运算二、实验内容1、问题描述:定义一个5行3列的稀疏矩阵{{0,5,0},{6,0,0},{0,9,0},{0,3,7},{8,0,0}};2、 基本要求 :(1) 、采用三元组顺序表存储表示;(2) 、显示上述

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/29 13:00:41
用三元组表实现稀疏矩阵的转置运算二、实验内容1、问题描述:定义一个5行3列的稀疏矩阵{{0,5,0},{6,0,0},{0,9,0},{0,3,7},{8,0,0}};2、 基本要求 :(1) 、采用三元组顺序表存储表示;(2) 、显示上述

用三元组表实现稀疏矩阵的转置运算二、实验内容1、问题描述:定义一个5行3列的稀疏矩阵{{0,5,0},{6,0,0},{0,9,0},{0,3,7},{8,0,0}};2、 基本要求 :(1) 、采用三元组顺序表存储表示;(2) 、显示上述
用三元组表实现稀疏矩阵的转置运算
二、实验内容
1、问题描述:定义一个5行3列的稀疏矩阵{{0,5,0},{6,0,0},{0,9,0},{0,3,7},{8,0,0}};
2、 基本要求 :
(1) 、采用三元组顺序表存储表示;
(2) 、显示上述稀疏矩阵的三元组表;
(3) 、对上述稀疏矩阵进行转置运算;
(4) 、显示稀疏矩阵转置 后的三元组表;

用三元组表实现稀疏矩阵的转置运算二、实验内容1、问题描述:定义一个5行3列的稀疏矩阵{{0,5,0},{6,0,0},{0,9,0},{0,3,7},{8,0,0}};2、 基本要求 :(1) 、采用三元组顺序表存储表示;(2) 、显示上述
书上不是有吗?把我的给你看看,没关系,要下下礼拜才交
#include<iostream>
using namespace std;
class matrix
{
public:
int data[100][100];
int m,n;
};
typedef int spmatrix[100][3];
void Init(matrix& mx);//稀疏矩阵初始化
void SpmDisplay(spmatrix spm);//显示三元组表示的矩阵
void Compressmatrix(matrix A,spmatrix B);//将稀疏矩阵转换为三元组矩阵
void Transpmatrix(spmatrix B,spmatrix& C);//将三元组矩阵转置
int main()
{
matrix mx;
spmatrix spm1,spm2;
//矩阵初始化
Init(mx);
//矩阵转为三元组
Compressmatrix(mx,spm1);
//显示三元组矩阵
SpmDisplay(spm1);
//将三元组转置存放到spm2中
Transpmatrix(spm1,spm2);
//显示转置后的三元组
SpmDisplay(spm2);
return 0;
}
void Init(matrix& mx)
{
cout<<"行数:";cin>>mx.m;cout<<endl;
cout<<"列数:";cin>>mx.n;cout<<endl;
cout<<"输入矩阵:"<<endl;
for(int i=0;i!=mx.m;i++)
for(int j=0;j!=mx.n;j++)
cin>>mx.data[i][j];
}
void SpmDisplay(spmatrix spm)
{
for(int x=0;x<=spm[0][2];x++)
for(int y=0;y<=2;y++)
{
static int z=0;
if(0==z%3)
cout<<endl;
z++;
cout<<spm[x][y]<<' ';
}
cout<<endl;
}
void Compressmatrix(matrix A,spmatrix B)
{
int i,j,k=1;
for(i=0;i<A.m;i++)
for(j=0;j<A.n;j++)
if(A.data[i][j]!=0)
{
B[k][0]=i;
B[k][1]=j;
B[k][2]=A.data[i][j];
k++;
}
B[0][0]=A.m;
B[0][1]=A.n;
B[0][2]=k-1;
cout<<"Compress complete!"<<endl;
}
void Transpmatrix(spmatrix B,spmatrix& C)
{
int i,j,t,m,n;
int x[100];
int y[100];
m=B[0][0];n=B[0][1];t=B[0][2];
C[0][0]=n;C[0][1]=m;C[0][2]=t;
if(t>0)
{
for(i=0;i<n;i++) x[i]=0;
for(i=1;i<=t;i++) x[B[i][1]]=x[B[i][1]]+1;
y[0]=1;
for(i=1;i<n;i++) y[i]=y[i-1]+x[i-1];
for(i=1;i<=t;i++)
{
j=y[B[i][1]];
C[j][0]=B[i][1];
C[j][1]=B[i][0];
C[j][2]=B[i][2];
y[B[i][1]]=j+1;
}
}
cout<<"Transform complete!"<<endl;
}

稀疏矩阵以三元组表输入,以通常的阵列形式输出,实现稀疏矩阵的转置,实现两个稀疏矩阵的加法运算. 用三元组表实现稀疏矩阵的转置运算二、实验内容1、问题描述:定义一个5行3列的稀疏矩阵{{0,5,0},{6,0,0},{0,9,0},{0,3,7},{8,0,0}};2、 基本要求 :(1) 、采用三元组顺序表存储表示;(2) 、显示上述 用三元组表实现稀疏矩阵的转置运算二、实验内容1、问题描述:定义一个5行3列的稀疏矩阵{{0,5,0},{6,0,0},{0,9,0},{0,3,7},{8,0,0}};2、 基本要求 :(1) 、采用三元组顺序表存储表示;(2) 、显示上述 设稀疏矩阵采用三元组顺序表存储结构,编写函数实现稀疏矩阵的转置运算B=AT(这里注意是A的T次方),已知稀疏矩阵A中的非零元三元组的排列次序是先按行下标排列,在行下标相同时按列下标 稀疏矩阵用模版实现的算法,比如输入矩阵,输出三元组怎么实现? 数据结构课程设计 稀疏矩阵实现与应用稀疏矩阵实现与应用要求:实现三元组,十字链表下的稀疏矩阵的下列应用.(1)稀疏矩阵的存储(2)稀疏矩阵加法(3)矩阵乘法(4)矩阵转置给出代 写出下列稀疏矩阵的三元组表 稀疏矩阵如何生成相应的三元组顺序表? 稀疏矩阵的三元组表示法 稀疏矩阵三元组存储结构的定义及其有关算法的实现? 数据结构三元组顺序表稀疏矩阵相加三元组顺序表稀疏矩阵A和B,形成新的三元组顺序表稀疏矩阵C,这个解题思路是怎样的?是否新的三元组稀疏矩阵C.MU、C.NU(矩阵的行数和列数)就是取A、B中 关于数据结构中 稀疏矩阵的问题!已知稀疏矩阵如下,请写出该稀疏矩阵三元组表示和转置的过程. 0 0 1 0 0 0 0 0 2 0 A = 0 3 0 0 0 0 0 0 1 0 2 0 0 0 0转置过程按如下步骤书写:第 对于下列稀疏矩阵,写出它的三元组表示法 数据结构实验矩阵运算器的算法和步骤,要求实现加、减、乘、除以及转置的运算、 数据结构实验稀疏矩阵,谁知道? 写出所给稀疏矩阵的三元组,及其转置矩阵的三元组0 0 3 0 0 2 00 0 0 0 7 0 0 -1 0 0 0 0 9 00 0 0 0 0 0 00 -3 0 0 0 0 016 0 0 -7 0 0 0 稀疏矩阵转换为三元组表(具体的三元组表,不要代码)M矩阵: 15 0 0 22 0 15 0 11 3 0 0 0 0 0 0 6 0 0 0 0 0 0 0 0 91 0 0 0 0 0 0 0 28 0 0 0 用三元组表示M矩阵是什么样的?(这个问题可忽略) 以下表示第 数据结构问题,有一个100*90的稀疏矩阵,非零元素有10个,设元素为整型,每个整型数占2字节,则用三元组存储该矩阵时,所需的字节数是多少.