R语言使用which.max函数查看向量中最大值对应的索引位置

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
稀疏矩阵基本操作 班级:计算机科学与技术(2)班 小组成员: 日期:2012年4月17日 1.需求分析 【实验目的】熟悉抽象数据类型的表示和实现方法。抽象数据类型需借助固有数据类型 来表示和实现,及利用高级程序设计语言已存在的数据类型来说明新的结构,用已经 实现的操作来组合新的操作,具体实现细节则依赖于所用的语言的功能。通过本次实习 还可以帮助读者复习高级语言的使用方法。掌握数组的特点及基本操作,如存储、输出、 乘积、转置等,,以便在实际问题背景下灵活应用。 【基本要求】 1.用C++/C完成算法设计和程序设计并上机调试通过。 2.撰写实验报告,提供实验结果和数据。 3.分析算法,要求给出具体的算法分析结果,包括时间复杂度和空间复杂度,并简要给 出算法设计小结和心得。 2.概要设计 栈的抽象数据类型 ADT Matrix { 数据对象:D={aij" i=1,2,…,m;j=1,2,…,n; ai ElemSet,m 、n分别称为矩阵的行数和列数} 数据关系:R={Row,Col} Row={<ai.j,ai.j+1>"1<=i<=m,1<=j<=n-1} Col={<ai.j,ai+1,j"1<=i<=m-1,1<=j<=n} 基本操作: CreatSMatrix(&M) 操作结果:构造一个稀疏矩阵。 DestroySMatix (&M) 初始条件:稀疏矩阵M已存在。 操作结果:销毁稀疏矩阵M。 PrintSMtrix(&M) 初始条件:稀疏矩阵已存在。 操作结果:输出稀疏矩阵M。 CompSMtrix(M,&T) 初始条件:稀疏矩阵M已存在。 操作结果:由稀疏矩阵M复制得到T。 AddSMtrix(M,N,&Q) 初始条件:稀疏矩阵M和N的行数与列数相等。 操作结果:求稀疏矩阵的和Q=M+N。 SubtMtrix(M,N,&Q) 初始条件:稀疏矩阵M和N的行数与列数对应相等。 操作结果:求稀疏矩阵的差Q=M-N。 MultSMtrix(M,N,&Q) 初始条件:稀疏矩阵的M的列数等于N的的行数。 操作结果:求稀疏矩阵的差Q=M x N。 TransposeSMatrix(M,&T) 初始条件:栈S已存在且非空。 操作结果:删除S的栈顶元素,并用e返回其值。 }ADT SparseSMatrix 3.详细设计 //------------稀疏矩阵的三元组顺序表存储表示------------------- #define MAXSIZE 12500 typedef struct{ int i,j; //该飞了那个元素的行下标和列下标 ElemType e; }Triple; Typedef struct{ Triple data[MAXSIZE+1];//非零元三元组表,data[0]未用 int mu,nu,tu; //矩阵的行数、列数和非零元素的个数 }TSMatrix; 4.测试结果: M= 0 0 4 0 0 3 7 0 0 0 0 5 0 8 0 4 0 0 2 10 N= 0 0 0 6 0 7 0 0 9 0 4 0 0 0 8 5.附录: 源程序: Matrix.h //函数申明 #include<stdio.h> #define MAXSIZE 100 //非零元个数的最大值 typedef struct triple { int i,j; // 行下标,列下标 int e; // 非零元素值 }triple; typedef struct tsmatrix { triple data[MAXSIZE+1]; //非零元三元组表,data[0]未用 int mu,nu,tu; //矩阵的行数、列数和非零元个数 }rlsmatrix; createsmatrix(rlsmatrix *M); //创建稀疏矩阵M void transposesmatrix(rlsmatrix M,rlsmatrix *T); //求矩阵的快速转置 multsmatrix(rlsmatrix M,rlsmatrix N,rlsmatrix *T);//求矩阵乘积Q=M x N void printmatrix(rlsmatrix M); //输出 Matrix.c //函数定义 createsmatrix(rlsmatrix *M) //创建稀疏矩阵M { int e,i,m,n; M->data[0].i=0; // 为以下比较顺序做准备 printf("请输入矩阵的行数,列数,和非零元素的个数\n"); printf("行数:"); scanf("%d",&M->mu); printf("列数:"); scanf("%d",&M->nu); printf("非零元素个数:"); scanf("%d",&M->tu); fo

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值