免费预览已结束,剩余2页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
福 建 工 程 学 院课程设计课 程: 数据结构 题 目: 稀疏矩阵的快速转置 专 业: 计算机类 班 级: 座 号: 姓 名: 2013年6月25日 实验题目:稀疏矩阵的快速转置一、要解决的问题利用三元组表存储稀疏矩阵,利用快速转置算法进行转置,并输出转置之前和之后的三元组表以及矩阵。二、算法基本思想描述:由于稀疏矩阵的非零元素较少,零元素较多,所以只需存储其非零元素。因此可以建立一个三元组表,分别保存稀疏矩阵的非零元素的行号、列号和元素值。对稀疏矩阵进行快速转置是可以引入两个向量numn+1,cpotn+1,分别标记矩阵中第col列的非零元素个数和第一个非零元素在转置后的矩阵的位置;再扫描三元组表,找到非零元素,直接对其在转置后的矩阵所在的位置上进行修改,以节省时间。三、详细设计元素类型,结点类型typedef struct int i,j; int e;Triple;typedef struct Triple dataMAXSIZE+1; int mu,nu,tu; Tsmatrix; 2.对抽象数据类型中的部分基本操作的伪码算法如下:Tsmatrix * creatarray(Tsmatrix *M) int m,n,p=1; int c; printf(please input the array A:n); for(m=1;m=a;m+) for(n=1;ndatap.e=c; M-datap.i=m; M-datap.j=n; p+; M-tu=p; M-mu=a; M-nu=b; printf(yuan lai san yuan zu de biao shi wei :nn); for(m=1;mtu;m+) printf(%3d%3d%3dt,M-datam.i,M-datam.j,M-datam.e); printf(n); return M; /*三元组快速转置*/Tsmatrix * fasttrans(Tsmatrix *M,Tsmatrix *T) int p,col,q,t,m; int num100; int cpot100; T-mu=M-nu; T-nu=M-mu; T-tu=M-tu; if(T-tu!=0) for(col=1;colnu;col+) numcol=0; for(t=1;ttu;t+) +numM-datat.j; cpot1=1; for(col=2;colnu;col+) cpotcol=cpotcol-1+numcol-1; for(p=1;ptu;+p) col=M-datap.j; q=cpotcol; T-dataq.i=M-datap.j; T-dataq.j=M-datap.i; T-dataq.e=M-datap.e; +cpotcol; printf(nnzhuan zhi hou de san yuan zu biao shi wei :nn); for(m=1;mtu;m+) printf(%3d%3d%3dt,T-datam.i,T-datam.j,T-datam.e); printf(n); return T;/*输出三元组函数*/void print(Tsmatrix *T,int x,int y) int m,n,p=1; int d; for(m=1;m=x;m+) printf(n); for(n=1;ndatap.i=m&T-datap.j=n) d=T-datap.e; p+; else d=0; printf(%6d,d); 3.主函数和其他函数的伪码算法void main() Tsmatrix *M,*T; M=(Tsmatrix *)malloc(sizeof(Tsmatrix); T=(Tsmatrix *)malloc(sizeof(Tsmatrix); printf(please input arrays row and col:n); scanf(%d%d,&a,&b); /*输入行列数*/ M=creatarray(M); /*创建稀疏矩阵*/ printf(you had creat the array:n); print(M,a,b); /*输出创建好的三元组*/ T=fasttrans(M,T); /*将三元组转置*/ printf(the trans array is:n); print(T,b,a); getch();4、模块结构及功能稀疏矩阵快速转置函数输出稀疏矩阵函数主程序创建稀疏矩阵3四、源程序清单:#include#define MAXSIZE 100typedef struct int i,j; int e;Triple;typedef struct Triple dataMAXSIZE+1; int mu,nu,tu; Tsmatrix;int a,b; /*定义全局变量数组的行数a和列数b*/*用数组创建三元组*/Tsmatrix * creatarray(Tsmatrix *M) int m,n,p=1; int c; printf(please input the array A:n); for(m=1;m=a;m+) for(n=1;ndatap.e=c; M-datap.i=m; M-datap.j=n; p+; M-tu=p; M-mu=a; M-nu=b; printf(yuan lai san yuan zu de biao shi wei :nn); for(m=1;mtu;m+) printf(%3d%3d%3dt,M-datam.i,M-datam.j,M-datam.e); printf(n); return M;/*三元组快速转置*/Tsmatrix * fasttrans(Tsmatrix *M,Tsmatrix *T) int p,col,q,t,m; int num100; int cpot100; T-mu=M-nu; T-nu=M-mu; T-tu=M-tu; if(T-tu!=0) for(col=1;colnu;col+) numcol=0; for(t=1;ttu;t+) +numM-datat.j; cpot1=1; for(col=2;colnu;col+) cpotcol=cpotcol-1+numcol-1; for(p=1;ptu;+p) col=M-datap.j; q=cpotcol; T-dataq.i=M-datap.j; T-dataq.j=M-datap.i; T-dataq.e=M-datap.e; +cpotcol; printf(nnzhuan zhi hou de san yuan zu biao shi wei :nn); for(m=1;mtu;m+) printf(%3d%3d%3dt,T-datam.i,T-datam.j,T-datam.e); printf(n); return T;/*输出三元组函数*/void print(Tsmatrix *T,int x,int y) int m,n,p=1; int d; for(m=1;m=x;m+) printf(n); for(n=1;ndatap.i=m&T-datap.j=n) d=T-datap.e; p+; else d=0; printf(%6d,d); void main() Tsmatrix *M,*T; M=(Tsmatrix *)malloc(sizeof(Tsmatrix); T=(Tsmatrix *)malloc(sizeof(Tsmatrix); printf(please input arrays row and col:n); scanf(%d%d,&a,&b); /*输入行列数*/ M=creatarray(M); printf(you had creat the array:n); print(M,a,b); T=fasttrans(M,T); printf(the trans array is:n); print(T,b,a); getch();五、测试数据及测试结果:(1)我
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 备战2026中考英语语法百题分类训练 专题17 形容词辨析100题(中考真题+中考模拟)(解析版)
- 2026秋季国家管网集团山东分公司高校毕业生招聘考试备考题库(浓缩500题)含答案详解(完整版)
- 网文作者签合同
- 国家管网集团2026届高校毕业生招聘考试参考题库(浓缩500题)及参考答案详解1套
- 2026国网吉林省高校毕业生提前批招聘(约450人)笔试模拟试题浓缩500题含答案详解(完整版)
- 2026秋季国家管网集团广西公司高校毕业生招聘笔试模拟试题(浓缩500题)附答案详解(巩固)
- 2026甘肃省白银有色集团股份有限公司技能操作人员社会招聘55考前自测高频考点模拟试题浓缩300题及答案1套
- 2025至2030全球及中国铸锯设备行业产业运行态势及投资规划深度研究报告
- 拆迁户合同房转让协议
- 2026年蚌埠市东方投资集团有限公司招聘14人考前自测高频考点模拟试题浓缩300题附答案
- 学前儿童维生素卫生学纲要
- 麻醉手术围术期全流程管理
- 供热维保管理制度
- 水肥一体化实施方案-智能水肥一体化系统课件
- DB3205-T 1073-2023 苏式传统文化 吴罗(提花罗)制作技艺传承指南
- 2025-2030中国实时动态(RTK)机行业市场发展趋势与前景展望战略研究报告
- 公司船舶经营管理制度
- 美团外卖配送服务合作协议
- 渔家傲秋思课件
- 新版道德与法治三年级上册《4.科技力量大》教学设计
- 《病原体核酸检测示范》课件
评论
0/150
提交评论