- 1、本文档共25页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
矩阵转置实验的报告
矩阵转置实验报告
篇一:实验报告 矩阵快速转置 实验报告 实验项目名称:实现矩阵的快速 转置的操作 所属课题名称:数据结构 实 验 类 型:验证实验 实 验 日 期:XX/12/20 学院:数学与信息科学学院 专业: 信息与计算科学 班级: 082班 姓名:李晓璐 学号: 实验 稀疏矩阵的快速转置操作 一、实验目的 1、 了解稀疏矩阵的三元组存储形式。 2、 熟悉掌握三元表存储矩阵的转置算法。 二、实验环境 硬件:PC 微型计算机、256M以上内存,40G以上硬盘。 软件:Windows XP,Turbo C/C++ 三、实验内容 转置运算是一种最简单的矩阵运算。对于一个m*n的矩阵M,它的转置矩阵T是一个n*m的矩阵。假设a和b是TSMatrix型的变量,分别表示矩阵M和T。按照a.data中三元组的次序进行转置,并将转置后的三元组置入b中恰当的位置。实现由a得到b的方式如下。 在转置前,应先求得M的每一列中非零元的个数,进而求得每一列的第一个非零元在b.data中应有的位置。在此,设num和cpot两个向量,num[col]表示矩阵M中第col列中非零元的个数,cpot[col]指示M中第col列的第一个非零元在b.data中应有的位置。显然有: cpot[1]=1; cpot[col]=cpot[col-1]+num[col-1] 四、实验步骤 1、本实验的程序清单如下。 “TSMatrix.h” #define MAXSIZE 12500 #define OK 1 #define ERROR 0 #define TRUE 1 #define FALSE 0 #define OVERFLOW 0 typedef int Status; typedef int ElemType; struct Triple { int i,j; ElemType e; }; class TSMatrix { public: TSMatrix(){mu=0;nu=0;tu=0;}; TSMatrix(int,int,int); ~TSMatrix(){}; void setTSMatrix(); Status PrintSMatrix(); Status TransposeSMatrix(TSMatrix T); Status FastTransposeSMatrix(TSMatrix T); private: Triple data[MAXSIZE+1]; int mu,nu,tu; }; TSMatrix::TSMatrix(int a,int b,int c) { mu=a;nu=b;tu=c; for(int p=1;p { printf(依次输入稀疏矩阵第%d个非零元的行号,列号,元素:,p);scanf(%d,%d,%d,data[p].i,data[p].j,data[p].e); } } void TSMatrix::setTSMatrix() { cout cinmu; cout cinnu; cout cintu; for(int p=1;p { printf(依次输入稀疏矩阵第%d个非零元的行号,列号,元素:,p);scanf(%d,%d,%d,data[p].i,data[p].j,data[p].e); } } Status TSMatrix::PrintSMatrix() { int k=1,t=0; for(int p=1;p { for(int q=1;q { if(p==data[k].iq==data[k].jk { cout.width(3); cout.setf(ios::left); cout cout.unsetf(ios::left); k++; } else { cout.width(3); cout.setf(ios::left); cout cout.unsetf(ios::left); } } cout } return OK; } Status TSMatrix::TransposeSMatrix(TSMatrix T) { int col,p,q; T.mu=nu; T.nu=mu; T.tu=tu; if(T.tu) { q=1; for(col=1
文档评论(0)