为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

稀疏矩阵的转置

2011-10-18 10页 doc 50KB 26阅读

用户头像

is_977235

暂无简介

举报
稀疏矩阵的转置稀疏矩阵 1.问题描述 一个阶数较大的矩阵中的非零元素个数s相对于矩阵元素的总个数t非常小时,称之为稀疏矩阵。稀疏矩阵的压缩方法是只存储非零元素。由于稀疏矩阵中非零元素的分布没有任何规律,所以在存储时还必须存储非零元素所对应的行下标和列下标。 2 数据结构设计 struct SPNode //定义三元组 { int i,j,v; //三元组非零元素的行,列和值 }; struct sparmatrix //定义稀疏矩阵 { int rows,cols,terms; SPNode data[SMAX]; }; 3 源代码: #i...
稀疏矩阵的转置
稀疏矩阵 1.问描述 一个阶数较大的矩阵中的非零元素个数s相对于矩阵元素的总个数t非常小时,称之为稀疏矩阵。稀疏矩阵的压缩方法是只存储非零元素。由于稀疏矩阵中非零元素的分布没有任何规律,所以在存储时还必须存储非零元素所对应的行下标和列下标。 2 数据结构设计 struct SPNode //定义三元组 { int i,j,v; //三元组非零元素的行,列和值 }; struct sparmatrix //定义稀疏矩阵 { int rows,cols,terms; SPNode data[SMAX]; }; 3 源代码: #include #include #include #include #define SMAX 100 struct SPNode //定义三元组 { int i,j,v; //三元组非零元素的行,列和值 }; struct sparmatrix //定义稀疏矩阵 { int rows,cols,terms; SPNode data[SMAX]; }; sparmatrix CreatSparmatrix() { sparmatrix A; printf("\n\t\t请输入稀疏矩阵的行数,列数和非零元个数(中间用空格隔开):\n\t\t"); scanf("%d%d%d",&A.rows,&A.cols,&A.terms); for(int n=0;n<=A.terms-1;n++) { printf("\n\t\t输入非零元值(格式:行号,列号,值)中间用逗号隔开:"); scanf("%d,%d,%d",&A.data[n].i,&A.data[n].j,&A.data[n].v); } return A; } struct sparmatrix Trans(struct sparmatrix &A) { struct sparmatrix B; B.rows=A.cols;B.cols=A.rows;B.terms=A.terms; for(int n=0;n<=A.terms-1;n++) { B.data[n].i=A.data[n].j; B.data[n].j=A.data[n].i; B.data[n].v=A.data[n].v; } A=B; return B; } void ShowSparmatrix(sparmatrix A) { int k; printf("\n\t\t"); for(int x=0;x<=A.rows-1;x++) { for(int y=0;y<=A.cols-1;y++) { k=0; for(int n=0;n<=A.terms-1;n++) { if((A.data[n].i==x)&&(A.data[n].j==y)) { printf("%8d",A.data[n].v); k=1; } } if(k==0) printf("%8d",k); } printf("\n\t\t"); } } void SearchSparmatrix(sparmatrix A,char s) { int n,t; t=A.terms; for(n=0;n
/
本文档为【稀疏矩阵的转置】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索