数组与广义表_稀疏矩阵的压缩存储_三元组做存储结构_矩阵转置
2011-10-18 00:16
686 查看
"Matrix.h"
"main.cpp"
#include<iostream> using namespace std; #define MAX_MATRIXSIZE 20 #define ElemType int class Triple//三元组类 { public: int i,j;//行列号 ElemType e;//元素值 }; class TSMatrix//矩阵类 { public: TSMatrix(); Triple matrix[MAX_MATRIXSIZE];//三元组集合 int mu,nu,tu;//行数,列数,非零元个数 }; TSMatrix::TSMatrix() { mu=nu=tu=0; } class Matrix//矩阵类封装了有关矩阵的各种操作 { public: void GetMatrix();//得到矩阵的三元组 void TransposeSMatrix();//矩阵转置 void PrintMatrix();//打印矩阵 private: void PrintMatrix(Triple[]);//重载函数用于打印转置矩阵 void GetCpot(int[]);//求转置矩阵时用于求得辅助数组Cpot的值 TSMatrix m;//实例化一个矩阵类的对象 }; void Matrix::GetMatrix()//得到矩阵的三元组 { cout<<"Please Input The Size Of The Matrix(m*n)"<<endl; cin>>m.mu>>m.nu; cout<<"Please Input Matrix With Increasing Order Of RowNumber"<<endl <<"rownum columnnum element"<<endl<<endl; int i,j; ElemType e; while(cin>>i>>j>>e) { m.matrix[m.tu].i=i; m.matrix[m.tu].j=j; m.matrix[m.tu].e=e; m.tu++; } cin.clear(); } void Matrix::GetCpot(int Cpot[])//求转置矩阵时用于求得辅助数组Cpot的值 { int num[MAX_MATRIXSIZE]; memset(num,0,sizeof(num)); for(int i=0;i<m.tu;i++) num[m.matrix[i].j]++; Cpot[1]=1; for(int i=2;i<m.nu;i++) Cpot[i]=Cpot[i-1]+num[i-1]; } void Matrix::TransposeSMatrix()//矩阵转置 { int Cpot[MAX_MATRIXSIZE]; GetCpot(Cpot); Triple temp[MAX_MATRIXSIZE]; for(int i=0;i<m.tu;i++) { temp[Cpot[m.matrix[i].j]-1].i=m.matrix[i].j; temp[Cpot[m.matrix[i].j]-1].j=m.matrix[i].i; temp[Cpot[m.matrix[i].j]-1].e=m.matrix[i].e; Cpot[m.matrix[i].j]++; } cout<<endl; PrintMatrix(temp); } void Matrix::PrintMatrix()//打印矩阵 { for(int i=0;i<m.tu;i++) cout<<m.matrix[i].i<<" "<<m.matrix[i].j<<" "<<m.matrix[i].e<<endl; } void Matrix::PrintMatrix(Triple t[])//重载函数用于打印转置矩阵 { for(int i=0;i<m.tu;i++) cout<<t[i].i<<" "<<t[i].j<<" "<<t[i].e<<endl; }
"main.cpp"
#include"Matrix.h" int main() { Matrix m; m.GetMatrix(); m.PrintMatrix(); m.TransposeSMatrix(); system("pause"); }
相关文章推荐
- 数组与广义表_稀疏矩阵的压缩存储_三元组做存储结构_矩阵相乘
- 数据结构--数组和广义表--以三元组顺序表存储方式的矩阵的一般转置和快速转置
- 【数据结构】稀疏结构及稀疏矩阵的压缩存储,矩阵的(快速)转置
- 【数据结构】稀疏结构及稀疏矩阵的压缩存储,矩阵的(快速)转置
- 稀疏矩阵--三元组表来压缩存储及转置
- 三元组表压缩存储稀疏矩阵实现稀疏矩阵的快速转置(Java语言描述)
- 三元组表压缩存储稀疏矩阵实现稀疏矩阵的快速转置(Java语言描述)
- 三元组实现稀疏矩阵的压缩存储与转置 (Sparse matrix compression storage and transposition base on triple)
- 稀疏矩阵的压缩存储与快速转置 三元组法 类与对象实现
- 数据结构Java实现——④数组——>稀疏矩阵三元组顺序存储
- 5.3矩阵的压缩存储(稀疏矩阵转置和快速转置)
- 数据结构_数组与广义表_矩阵的十字链表存储稀疏矩阵相加
- 广义表的应用--稀疏矩阵的快速转置(三元组)
- 稀疏矩阵的压缩存储以及快速转置
- 第九周 数据结构实践项目——数组和广义表【项目3.1-稀疏矩阵的三元组表示的实现及应用】
- 数据结构24:矩阵压缩存储(十字链表、三元组顺序表、行逻辑链接的顺序表)
- 稀疏矩阵压缩存储及转置,加法运算(采用三元表)
- 稀疏矩阵的三元组存储结构
- 稀疏矩阵的压缩存储及转置,快速转置法,C++代码实现
- 2015年大二上-数据结构-数组与广义表(3)-2.稀疏矩阵的三元组表示