北京邮电大学 计算机学院 数据结构第四次实验报告.docVIP

北京邮电大学 计算机学院 数据结构第四次实验报告.doc

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
北京邮电大学 计算机学院 数据结构第四次实验报告

实验报告(4) 姓 名: 学 号: 班 级: 日 期: 实验目的、实验原理和内容: 一、实验目的:掌握特殊线性表数组的有关运算,熟悉数组的存储结构和基本应用。 二、实验原理:完成特殊单链表-----数组的运算。具体:利用数组存储稀疏矩阵,编写程序实现他们的求和运算。 三、实验内容及要求: 编写一个算法程序实现把2个稀疏矩阵分别存储在2个顺序三元组中; 编写二个算法程序,一个实现把上述2个疏矩阵求和运算,一个实现把上述2个稀疏矩阵求积运算,分别输出求和、求积以后的结果。 要求:请同学把步骤、调试好的程序及存在的问题写在下面。 第一题实验步骤:首先分别建立三元组以及包含这个顺序三元组的矩阵的结构体,然后提示用户输入矩阵的行数列数,然后让用户输入矩阵中的元素,并将非零元素存入三元组中,最后打印出三元组。 第一题实验程序代码: #include stdio.h #define MAXSIZE 12500 typedef int ElemType; typedef struct{//三元组的结构体 int i,j; ElemType e; }Triple,*TriplePTR; typedef struct{//稀疏矩阵的结构体 Triple data[MAXSIZE+1]; int mu,nu,tu; }TSMatrix,*TSMatrixPTR; TSMatrix creatTSMatrix(TSMatrix S); //创建一个稀疏矩阵 void playTSMatrix(TSMatrix S);//打印出矩阵的稀疏三元组及完整的矩阵 int main() { TSMatrix S,G; printf(Please input the mu and nu of the first Matrix:\n); scanf(%d %d,S.mu,S.nu);//提示用户输入矩阵的行数及列数 fflush(stdin); while(S.mu=0||S.nu=0)//判断用户输入是否合法 { printf(Your input is wrong,please input again!\n); scanf(%d %d,S.mu,S.nu); } S=creatTSMatrix(S); playTSMatrix(S); printf(Please input the mu and nu of the second Matrix:\n); scanf(%d %d,G.mu,G.nu); fflush(stdin); while(G.mu=0||G.nu=0) { printf(Your input is wrong,please input again!\n); scanf(%d %d,G.mu,G.nu); } G=creatTSMatrix(G); playTSMatrix(G); } TSMatrix creatTSMatrix(TSMatrix S)//创建一个稀疏矩阵 { int a[S.mu-1][S.nu-1]; int i,j,k=1; printf(Please input the data of the Matrix:\n); for(i=0;i=S.mu-1;i++) for(j=0;j=S.nu-1;j++) { scanf(%d,a[i][j]); if(a[i][j]!=0) { S.data[k].i=i+1; S.data[k].j=j+1; S.data[k].e=a[i][j]; k++; } } S.tu=k-1; return S; } void playTSMatrix(TSMatrix S)//打印出稀疏矩阵的三元组及完整的矩阵 { int i,j,k=1,h; if(S.tu==0)//判断三元组中是否有非零元素 printf(All elements of the Matrix is zero!\n); else { printf(The Triple of the matrix is:\nmu\tnu\tElemType\n); for(h=1;h=S.tu;h++) { printf(%d\t%d\t%d\n,S.data[h].i,S.data[h].j,S.data[h].e); } } printf(The matrix is:\n);//打印出完整的稀疏矩阵 for(

您可能关注的文档

文档评论(0)

wannian118 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档