还剩5页未读,继续阅读
文本内容:
软件学院上机实验报告课程名称数据结构实验项目矩阵实验室耘慧姓名420_______________学号________________专业班级实验时间
2022.1124实验成绩评阅教师
一、实验目的及要求
1.掌握稀疏矩阵压缩存储方法(三元组顺序表存储)
2.完成压缩存储下矩阵计算(矩阵转置)
二、验证性
三、实验学时2学时U!C与C++程序设计学习与实验系统
五、实验内容及步骤实验内容
1.实现矩阵压缩存储(静态数组压缩存储或者直接输入矩阵非0元均可)
2.实现矩阵转置算法
3.实现矩阵快速转置实验步骤
1.实现矩阵压缩存储(静态数组压缩存储或者直接输入矩阵非0元均可)
2.实现矩阵转置算法TransposeSMatrix(TSMatrix M,TSMatrix T)
3.实现矩阵快速转置FastTransposeSMatrix(TSMatrix M,TSMatrix T)
4.主函数中创建矩阵M,将M调用转置算法转置成矩阵N,调用快速转置算法转化成矩阵To
六、实验数据及结果分析
七、总结了解了矩阵的一些知识,懂得了矩阵的一些算法并且在实际上机中,学会了矩阵的程序的编写方法附录源程序清单插入;#includestdio.h#includeHmalloc.h#includeconio.h#includestdlib.h#define OK1#define ERROR0#define MAXSIZE12500#define MAXRC1000typedef intElemType;typedef intStatus;typedef struct{int i,j;ElemTypee;JTriple;typedef struct{Triple data[MAXSIZE+1];int rpos[MAXRC+1];int mu,tu nu;3JRLSMatrix;Status TransposeSMatrixRLSMatrixM,RLSMatrix T{int q=1,col=0,p=0;T.mu=M.nu;T.nu=M.mu;T.tu=M.tu;ifT.tu{q=i;forcol=1;col=M.nu;++colforp=1;p=M.tu;++pifM.data[p].j==col{T.data[q].i=M.data[p].j;T.data[q].j=M.data[p].i;T.data[q].e=M.data[p].e;++q;}return0;Status FastTransposeSMtrixRLSMatrixM,RLSMatrix T{int col=0,t=0p=0q=0;55ElemType num
[100],cpot
[100];T.mu=M.nu;T.nu=M.mu;T.tu=M.tu;ifT.tu{forcol=1;col=M.nu;++colnum[col]=0;fort=1;t=M.tu;++t++num[M.data[t]J];cpot
[1]=1;forcol=2;col=M.nu;++col cpot[col]=cpot[col-1]+num[col-1];forp=1;p=M.tu;++p{col=M.data[p].j;q=cpot[col];T.data[q].i=M.data[p].j;T.data[q].j=M.data[p].i;T.data[q].e=M.data[p].e;++cpot[col];}return OK;Status CreateSMatrixRLSMatrix*M{int k,m n,i;5ElemType e;请输入行列非零个数printfscanf_s%dH*M.mu;5scanf_s%d,,,*M.nu;%scanf_s d\*M.tu;*M.data[O].i=O;;fori=1i=*M.tu;i++{do{请输入元素行列元素值;printfscanf_sn%dn m;5%scanf_s d\n;scanf_sH%dH e;5k=0;ifm1||m*M.mu||n1||n*M.nu;k=1ifm=*M.data[i-1].in=*M.data[i-1].j;k=1}whilek;*M.data[i].j=n;*M.data[i].e=e;return OK;}void printfSMatrixRLSMatrixM{int i;printf_sH%4d%4d%8d\nH M.mu,M.nu M.tu;J5fori=1;i=M.tu;i++printf_s%4d%4d%8d\nH M.data[i].i M.data[i].j M.data[i].e;5J5int mainvoidRLSMatrixM,N,T,Q;CreateSMatrixM;FastT ransposeSMtrixM,T;printfSMatrixT;CreateSMatrixN;TransposeSMatrixM,Q;printfSMatrixQ;jgetchQ;return0;。