数据结构 - 三元组顺序表 - - 稀疏矩阵的转置和快速转置
更新时间:2024-04-21 10:14:01 阅读量: 综合文库 文档下载
- 数据结构考研真题推荐度:
- 相关推荐
数据结构---三元组顺序表------稀疏矩阵的转置和快速转置
#include
#define TURE 1 #define FALSE 0 #define OK 1 #define ERROR 0
#define INEEASLIBE -1 #define OVERFLOW -2 #define maxsize 100
typedefint status; typedefintelemtype;
typedefstruct { inti,j; elemtype e; }elem;
typedefstruct { elem data[maxsize+1]; intmu,mn,tu; }matrix;
statusshowmatrix(matrix M) { inti,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(\ k++; } else printf(\
} printf(\ } return OK; }
status trans(matrix M,matrix&T) { inti=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; }
statusinitmatrix(matrix &M) {
printf(\请输入该矩阵行数mu和列数mn和非零元个数tu\\nmu=\scanf(\getchar();
printf(\scanf(\getchar();
printf(\scanf(\getchar();
if(M.tu>maxsize) { printf(\非零元个数已超过定义的值\\n请重新输入tu=\ scanf(\ getchar();
}
printf(\请输入非零元和它所在的行数和列数(矩阵从先从左到右,再从上到下输入)\\n\for(inti=1;i<=M.tu;i++) { if(i==1) printf(\输入非零元:\ else
printf(\输入下一个非零元:\scanf(\getchar();
printf(\输入该非零元的行数:\scanf(\getchar();
while(M.data[i].i>M.mu||M.data[i].i<1) { }
printf(\输入的行数不合法\\n请重新输入行数:\scanf(\getchar();
printf(\输入该非零元的列数:\scanf(\getchar();
while(M.data[i].j>M.mn||M.data[i].j<1) {
printf(\输入的列数不合法\\n请重新输入列数:\ scanf(\ getchar(); } } return OK; }
statusfasttrans(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; inti=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(\初始化矩阵\\n2:显示矩阵\\n3:普通转置\\n4:快速转置\\n\ scanf(\ 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;
正在阅读:
数据结构 - 三元组顺序表 - - 稀疏矩阵的转置和快速转置04-21
重症护理计划单神经08-07
微信录音如何具备证明效力02-23
最新《劳务派遣暂行规定》逐条解读07-11
推行说理性处罚文书 构建服务型执法模式03-18
我们即将毕业作文优秀3篇03-22
生产管理试题库01-29
上海世博06-06
热水害死鱼作文550字07-07
美丽的故乡杭州作文600字06-30
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 三元
- 数据结构
- 稀疏
- 矩阵
- 顺序
- 快速
- 舞蹈与幼儿舞蹈创编期末复习试题
- 2018年五大产业园区运营模式分析研究
- 暨大微生物问答题
- 仪器仪表元件制造工岗位实习周记原创范文
- 2018模拟题1(语文)
- 基坑支护锚索施工专项方案
- 十二届全国政协委员名单及所任职务
- 2015-2016年江苏省苏州市市区八年级(下)期中数学试卷及参考答
- 2015年江苏公务员考试行测真题及答案B
- 2016-2017学年人教版小学五年级上册数学教学计划及进度表
- 压力容器现场组焊安装施工方案 - 图文
- 《家乡的桥》说课稿
- 02382管理信息系统完整笔记+复习资料
- 工伤死亡职工供养亲属范围的确定
- 驾驶证最新安全文明常识题库(2013版)打印 - 图文
- 比喻句与拟人句的区别 - 教案
- 笠翁对韵自学提示
- 新建设工程监理规范新表-2014 - 图文
- 电磁感应的11种典型案例
- 新教版小学五年级新疆地方课上册完整的课时教案