数组和稀疏矩阵.pptVIP

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

#define MaxSize 100 /*矩阵中非零元素最多个数*/ typedef struct { int r; /*行号*/ int c; /*列号*/ ElemType d; /*元素值*/ } TupNode; /*三元组定义*/ typedef struct { int rows; /*行数值*/ int cols; /*列数值*/ int nums; /*非零元素个数*/ TupNode data[MaxSize]; } TSMatrix; /*三元组顺序表定义*/ 其中,data域中表示的非零元素通常以行序为主序顺序排列,它是一种下标按行有序的存储结构。这种有序存储结构可简化大多数矩阵运算算法。下面的讨论假设data域按行有序存储。 (1) 从一个二维矩阵创建其三元组表示 以行序方式扫描二维矩阵A,将其非零的元素插入到三元组t的后面。算法如下: void CreatMat(TSMatrix t,ElemType A[M][N]) { int i,j; t.rows=M;t.cols=N;t.nums=0; for (i=0;iM;i++) { for (j=0;jN;j++) if (A[i][j]!=0) /*只存储非零元素*/ { t.data[t.nums].r=i;t.data[t.nums].c=j; t.data[t.nums].d=A[i][j];t.nums++; } } } (2) 三元组元素赋值 先在三元组t中找到适当的位置k,将k~t.nums个元素后移一位,将指定元素x插入到t.data[k]处。算法如下: int Value(TSMatrix t,ElemType x,int rs,int cs) { int i,k=0; if (rs=t.rows || cs=t.cols) return 0; while (kt.nums rst.data[k].r) k++; /*查找行*/ while (kt.nums cst.data[k].c) k++; /*查找列*/ if (t.data[k].r==rs t.data[k].c==cs) t.data[k].d=x; /*存在这样的元素 else /*不存在这样的元素时插入一个元素*/ { for (i=t.nums-1;ik;i--) /*元素后移*/ { t.data[i+1].r=t.data[i].r; t.data[i+1].c=t.data[i].c; t.data[i+1].d=t.data[i].d; } t.data[k].r=rs;t.data[k].c=cs;t.data[k].d=x; t.nums++; } return 1; } * * 第5章 数组和稀疏矩阵 5.1 数组 5.2 稀疏矩阵 本章小结 5.1.1 数组的基本概念 数组是n(n>1)个相同类型数据元素a1,a2,…,an构成的有限序列,且该有限序列存储在一块地址连续的内存单元中。 由此可见,数组的定义类似于采用顺序存储结构的线性表。 数组具有以下性质: (1) 数组中的数据元素数目固定。一旦定义了一个数组,其数据元素数目不再有增减变化。 (2) 数组中的数据元素具有相同的数据类型。 (3) 数组中的每个数据元素都和一组惟一的下标值对应。 (4) 数组是一种随机存储结构。可随机存取数组中的任意数据元素。 5.1.2 数组的存储结构 在一维数组中,一旦a1的存储地址LOC(a1)确定,并假设每个数

文档评论(0)

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

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

1亿VIP精品文档

相关文档