首页 数据结构---三元组顺序表------稀疏矩阵的转置和快速转置

数据结构---三元组顺序表------稀疏矩阵的转置和快速转置

举报
开通vip

数据结构---三元组顺序表------稀疏矩阵的转置和快速转置数据结构---三元组顺序表------稀疏矩阵的转置和快速转置 数据构结结---三元序表结结结结------稀疏矩的置和快速置结结结结结结结结结 #include #include #include #define TURE 1 #define FALSE 0 #define OK 1 #define ERROR 0 #define INEEASLIBE -1#define OVERFLOW -2#define maxsize 100typedef int status;typedef int elemtype;...

数据结构---三元组顺序表------稀疏矩阵的转置和快速转置
数据结构---三元组顺序 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf ------稀疏矩阵的转置和快速转置 数据构结结---三元序表结结结结------稀疏矩的置和快速置结结结结结结结结结 #include #include #include #define TURE 1 #define FALSE 0 #define OK 1 #define ERROR 0 #define INEEASLIBE -1#define OVERFLOW -2#define maxsize 100typedef int status;typedef int elemtype;typedef struct { int i,j; elemtype e; }elem; typedef struct { elem data[maxsize+1]; int mu,mn,tu; }matrix; status showmatrix(matrix M){ int i,j,k=1; for(i=1;i<=M.mu;i++) { for(j=1;j<=M.mn;j++) { if(i==M.data[k].i&&j==M.data[k].j) { printf("%d\t",M.data[k].e); k++; } else printf("0\t"); } printf("\n"); } return OK; } status trans(matrix M,matrix &T) { int i=1,j=1,k=1; T.tu=M.tu; T.mn=M.mu; T.mu=M.mn; while(i<=M.mn) { for(;k<=M.tu;k++) if(M.data[k].j==i) { T.data[j].e=M.data[k].e; T.data[j].i=M.data[k].j; T.data[j].j=M.data[k].i; j++; } k=1; i++; } return OK; } status initmatrix(matrix &M) { printf("请请请请请请请入矩行数mu和列数mn和非零元个数tu\nmu=");scanf("%d",&M.mu); getchar(); printf("\nmn="); scanf("%d",&M.mn); getchar(); printf("\ntu="); scanf("%d",&M.tu); getchar(); if(M.tu>maxsize) { printf("非零元个数已超定的请请请请请\n请请请重新入tu="); scanf("%d",&M.tu); getchar(); } printf("请请入非零元和它所在的行数和列数(矩从先从左到右,再请请请请请请请请请 从上到下入请请)\n"); for(int i=1;i<=M.tu;i++){ if(i==1) printf("请入非零元:"); else printf("请入下一个非零元:"); scanf("%d",&M.data[i].e); getchar(); printf("请请请请请请请请入非零元的行数:"); scanf("%d",&M.data[i].i); getchar(); while(M.data[i].i>M.mu||M.data[i].i<1) { printf("请入的行数不合法\n请请请请请重新入行数:"); scanf("%d",&M.data[i].i); getchar(); } printf("请请请请请请请请入非零元的列数:"); scanf("%d",&M.data[i].j); getchar(); while(M.data[i].j>M.mn||M.data[i].j<1) { printf("请入的列数不合法\n请请请请请重新入列数:"); scanf("%d",&M.data[i].j); getchar(); } } return OK; } status fasttrans(matrix M,matrix &T) { T.tu=M.tu; T.mn=M.mu; T.mu=M.mn; int *num,*pose; num=(int*)malloc(M.mn*sizeof(int));pose=(int*)malloc(M.mn*sizeof(int));*(pose)=1; int i=1; for(;i<=M.mn;i++) *(num+i-1)=0; for(i=1;i<=M.tu;i++) { *(num+M.data[i].j-1)=*(num+M.data[i].j-1)+1; } for(i=2;i<=M.mn;i++) { *(pose+i-1)=*(pose+i-2)+*(num+i-2);} for(i=1;i<=M.tu;i++) { T.data[*(pose+M.data[i].j-1)].i=M.data[i].j; T.data[*(pose+M.data[i].j-1)].j=M.data[i].i; T.data[*(pose+M.data[i].j-1)].e=M.data[i].e; *(pose+M.data[i].j-1)=*(pose+M.data[i].j-1)+1; } return OK; } main() { matrix M,T; char c; while(1) { printf("1:初始化矩请\n2:请请示矩\n3:普通置请请\n4:快速置请请\n");scanf("%c",&c); getchar(); switch(c) { case '1': if(initmatrix(M)==OK) printf("初始化成功\n"); break; case '2': showmatrix(M); break; case '3': trans(M,T); printf("请请请置后矩:\n"); showmatrix(T); break; case '4': fasttrans(M,T); printf("请请请置后矩:\n"); showmatrix(T); break; default: printf("请入不合法\n"); break; } } }
本文档为【数据结构---三元组顺序表------稀疏矩阵的转置和快速转置】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_751406
暂无简介~
格式:doc
大小:20KB
软件:Word
页数:8
分类:生活休闲
上传时间:2017-10-23
浏览量:49