用三元组表存储表示,求稀疏矩阵M转置函数T
更新时间:2023-09-28 22:24:01 阅读量: 综合文库 文档下载
实验目的
采用三元组表存储表示,求稀疏矩阵M转置函数T
实验内容
编程序并上机调试运行。
采用三元组表存储表示,求稀疏矩阵M转置函数T
编写程序
//采用三元组表存储表示,求稀疏矩阵M转置函数T
#include
#define MAXSIZE 100
typedef struct { int i,j; int e; }Triple;
typedef struct { Triple data[MAXSIZE+1]; int mu,nu,tu; }TSMatrix;
//创建稀疏矩阵M
CreateSMatrix(TSMatrix *M) { int i,m,n,e,k; printf(\输入矩阵M的行数、列数、非零元的个数(中间用逗号隔开):\ scanf(\ (*M).data[0].i=0; printf(\ for(i=1;i<=(*M).tu;i++) {
do { printf(\输入第%d个非零元素所在的行(1~%d)列(1~%d)值以及该数值:\
scanf(\ k=0; if(m<1||m>(*M).mu||n<1||n>(*M).nu) k=1; if(m<(*M).data[i-1].i||m==(*M).data[i-1].i&&n<(*M).data[i-1].j) k=1; }while(k); (*M).data[i].i=m; (*M).data[i].j=n; (*M).data[i].e=e; } printf(\ return 1; }
//输出稀疏矩阵M
void PrintSMatrix(TSMatrix M) { int i; printf(\ for(i=1;i<=M.tu;i++) printf(\printf(\ printf(\}
//求稀疏矩阵M的转置矩阵T
void TransposeSMatrix(TSMatrix M,TSMatrix *T) { int p,q,col; (*T).mu=M.nu; (*T).nu=M.mu; (*T).tu=M.tu; if((*T).tu) { q=1; for(col=1;col<=M.nu;++col)
for(p=1;p<=M.tu;++p) if(M.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; } } return 1; }
//打印矩阵函数,以通常形式输出矩阵 void print(TSMatrix A) { int k=1,a,b; int M[MAXSIZE][MAXSIZE]; printf(\非零元素所对应的位置:\\n\
printf(\ for(a=0;a
printf(\ printf(\}
//主函数 int main() {
TSMatrix M,T; printf(\创建矩阵M:\ CreateSMatrix(&M); printf(\矩阵M的三元组表为:\\n\ PrintSMatrix(M); print(M); TransposeSMatrix(M,&T); printf(\稀疏矩阵M的转换矩阵T的三元组表为:\\n\ PrintSMatrix(T); print(T);
printf(\ getchar(); return 0; }
运行程序:
程序解析:
1.首先是将程序的开头写好,定义非零元个数最多为100.
定义非零元的行下标,列下标,和非零元素为int型。由mu,nu,tu分别代表矩阵的行数,列数和非零元个数。
2.创建稀疏矩阵M。
创建一个稀疏矩阵,用scanf进行用户输入行数,列数及非零元个数。当i小于等于非零元个数时,进行以下的for循环,执行内循环的循环语句。当k不为0时,重复执行输入非零元素的行列值以及其值,若超出行数或列数或非零元个数,则跳出循环。加入外循环,执行外循环的三个语句,直到,i等于非零个数,跳出外循环。
正在阅读:
2019届高考英语(人教版)一轮复习练习:必修3 3 Unit3知能演练轻松闯关 Word版含答案11-26
人教新目标2022年英语八年级上册Unit2单元练习题04-18
重力选矿实验报告模板06-03
2022-2022学年辽宁省大连育明高级中学、本溪市高级中学高三10月04-18
热爱家乡的格言警句02-19
遭受六百多次暗杀的卡斯特罗遇到的一次温柔谋杀 - 图文12-01
2018-2019学年江西省上高二中高一上学期第一次月考试题 物理03-04
移动通信课程设计实验报告-利用matlab进行m序列直接扩频仿真04-06
CCL4拉曼光谱特征- 复旦大学10-02
- 人教新课标必修4 Unit2 Working the land名师导航
- 毕业生“校漂族”大行其道 - 0
- 江苏各市中考作文题出炉 - 0
- 暑期精品班 - 三角形 - 图文
- 情人节送什么礼物好??超强礼物已抵达
- 工程项目管理制度1
- 第四次业务学习 2016
- 会计要素与会计科目
- 欠发达地区小企业会计准则运用问题研究
- 一级锅炉水G4题库
- BBD双进双出筒式磨煤机安装使用说明书 SM-1
- 初一数学有理数教案
- 渝北区房地产评估市场调研报告
- iWebMall 数据字典
- 2018年小学入学教育工作计划
- 计量专业实务与案例分析 - 模拟题三 - 2013年版
- 启示录讲义
- 路基灰土改良(方案)
- 人行反洗钱岗位准入培训测试题集
- 2015电大《学前儿童发展心理学》期末试题及答案
- 三元
- 稀疏
- 矩阵
- 函数
- 存储
- 表示
- 3.五月份劳动技能竞赛实施方案
- 高中《世界是永恒发展的》教案说课稿
- 09春计应班理论试卷
- 解决问题的策略2
- 浅谈曾国藩家庭教育思想及对现代家庭教育的启示
- 2015秋季义务教育课程标准实验教科书语文四年级上册期中测试题
- 2016年度中心小学工会工作总结
- 工作部署讲话稿 干部审核工作上的讲话稿 精品
- 2018-2024年中国自旋翼飞机行业市场调研与发展前景分析报告(目录) - 图文
- 植物保护技术(1-4章)
- 2018年信阳市小升初语文模拟试题与答案
- 文言文赏析
- 第29个教师节蔡华讲话稿(初稿)
- 杭州市拱墅区卫生局关于做好医师定期考核工作的通知
- 学案导学设计高中语文苏教版选修《唐诗宋词选读》专题检测:专题四 沉郁顿挫的杜甫诗
- BT项目:理性认识政府回购, 谨慎防范法律风险
- 宏观经济学考试题2
- 焊工初训3
- 高三信息技术(浙江选考)一轮复习: 算法与程序设计 算法的程序实现
- 化学课外兴趣小组活动计划安排、记录、教案