ImageVerifierCode 换一换
格式:DOCX , 页数:10 ,大小:76.49KB ,
资源ID:12729928      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-12729928.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(用三元组表存储表示求稀疏矩阵M转置函数T.docx)为本站会员(b****8)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

用三元组表存储表示求稀疏矩阵M转置函数T.docx

1、用三元组表存储表示求稀疏矩阵M转置函数T实验目的采用三元组表存储表示,求稀疏矩阵M转置函数T实验内容编程序并上机调试运行。采用三元组表存储表示,求稀疏矩阵M转置函数T编写程序/采用三元组表存储表示,求稀疏矩阵M转置函数T#include#define MAXSIZE 100typedef struct int i,j; int e;Triple;typedef struct Triple dataMAXSIZE+1; int mu,nu,tu; TSMatrix; /创建稀疏矩阵M CreateSMatrix(TSMatrix *M) int i,m,n,e,k; printf(输入矩阵M的行

2、数、列数、非零元的个数(中间用逗号隔开):); scanf(%d,%d,%d,&(*M).mu,&(*M).nu,&(*M).tu); (*M).data0.i=0; printf(n); for(i=1;i=(*M).tu;i+) do printf(输入第%d个非零元素所在的行(1%d)列(1%d)值以及该数值:,i,(*M).mu,(*M).nu); scanf(%d,%d,%d,&m,&n,&e); k=0; if(m(*M).mu|n(*M).nu) k=1; if(m(*M).datai-1.i|m=(*M).datai-1.i&n(*M).datai-1.j) k=1; whil

3、e(k); (*M).datai.i=m; (*M).datai.j=n; (*M).datai.e=e; printf(n); return 1; /输出稀疏矩阵Mvoid PrintSMatrix(TSMatrix M) int i; printf(*n); for(i=1;i=M.tu;i+) printf(%2d%4d%8dn,M.datai.i,M.datai.j,M.datai.e);printf(*n); printf(n);/求稀疏矩阵M的转置矩阵T void TransposeSMatrix(TSMatrix M,TSMatrix *T) int p,q,col; (*T).

4、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.datap.j=col) (*T).dataq.i=M.datap.j; (*T).dataq.j=M.datap.i; (*T).dataq.e=M.datap.e; +q; return 1;/打印矩阵函数,以通常形式输出矩阵 void print(TSMatrix A) int k=1,a,b; int MMAXSIZEMAXSIZE;printf(非零元素所对应的位置:n);print

5、f(*n); for(a=0;aA.mu;a+) for(b=0;bA.nu;b+) Mab=0; while(k=A.tu) MA.datak.i-1A.datak.j-1=A.datak.e; k+; for(a=0;aA.mu;a+) printf( | ); for(b=0;bA.nu;b+) printf(%d ,Mab); printf( | n); printf(*n); printf(n);/主函数int main() TSMatrix M,T; printf(创建矩阵M:); CreateSMatrix(&M); printf(矩阵M的三元组表为:n); PrintSMatr

6、ix(M); print(M); TransposeSMatrix(M,&T); printf(稀疏矩阵M的转换矩阵T的三元组表为:n); PrintSMatrix(T); print(T); printf(nn); getchar(); return 0; 运行程序:程序解析:1.首先是将程序的开头写好,定义非零元个数最多为100.定义非零元的行下标,列下标,和非零元素为int型。由mu,nu,tu分别代表矩阵的行数,列数和非零元个数。2.创建稀疏矩阵M。创建一个稀疏矩阵,用scanf进行用户输入行数,列数及非零元个数。当i小于等于非零元个数时,进行以下的for循环,执行内循环的循环语句。当

7、k不为0时,重复执行输入非零元素的行列值以及其值,若超出行数或列数或非零元个数,则跳出循环。加入外循环,执行外循环的三个语句,直到,i等于非零个数,跳出外循环。3.输出稀疏矩阵M用PrintSMatrix函数输出稀疏矩阵,从i等于1循环执行到i等于非零元个数,使非零元的行列数一个一个输出。4.求稀疏矩阵的转置矩阵。用TransposeSMatrix函数实现稀疏矩阵M转置为矩阵T。让T的行等于M的列,T的列等于M的行。非零元素相等。当非零元素不等于零时,就执行if语句,if语句中两个for循环和一个if循环实现了MT矩阵行列的对调,按列序求转置。最后返回1.5.打印函数,输出非零元素对应的位置这里定义一个M的数组,当a小于行数数,执行内循环,使b的列数不断增加,赋值为0,在执行外循环,b变为1,执行内循环,在赋值为0,然后再跳出内循环,执行外循环,如此直到,a等于行数则跳出外循环。执行下面的while语句。当k=A的非零元个数时,将非零元素放置到指定的位置。然后跳出循环执行下面的for语句,结果就可以输出链表状的非零元素。6.建立main函数。Main函数直接调用各个函数,在M的后面打印出其普通排列,T后面也打印出其普通排列。

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2