- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
01/06/2002 数据结构讲义 第六章 特殊矩阵、广义表及其应用 数组与矩阵 对称矩阵的压缩存储 三角矩阵的压缩存储 对角矩阵的压缩存储 稀疏矩阵的压缩存储 广义表--定义 广义表--单链存储结构 广义表--双链存储结构 * 数组与矩阵 特殊矩阵的压缩存储 矩阵的应用实例 广义表 数组定义 有限个相同类型的数据元素组成的线性逻辑结构称为一维数组; 数据元素类型相同且是N维数组的线性表称为N+1维数组。N=1,2,… 矩阵与数组的关系 矩阵是数的集合;数组是相同类型的数据元素的集合; 矩阵是二维数组。 数组的存储结构。有两种存储方式: 以列序为主序存储:下标从左至右、由小到大依次存储。 以行序为主序存储:下标从右至左、由小到大依次存储。在C语言中,数组以行序为主序存储。例如:对于二维数组A[m,n],元素a[i,j]的地址为:Loc(a[i,j]))=Loc(a[0,0])+[i*(n+1)+j]*d。其中d表示每个数据元素占用的存储单元数。 a[0,0] a[0,1] a[1,0] a[1,1] a[0,0] a[1,0] a[0,1] a[1,1] 行序为主序 列序为主序 问题描述:若矩阵Am×n 中存在某个元素aij满足:aij是第i行中的最小值且是第j列中的最大值,则称该元素为矩阵A的一个鞍点。试编写一个算法,找出A中的所有鞍点。 学生训练 基本思想:在矩阵A中求出每一行的最小值元素,然后判断该元素它是否是它所在列中的最大值,是则打印出,接着处理下一行。矩阵A用一个二维数组表示。 对称矩阵。在一个n阶方阵中,有a[i,j]=a[j,i]。其中1≤i , j≤n,则称该矩阵为对称矩阵。 存储结构。用一个一维数组存储下三角中的元素: 数组维数: 矩阵元素a[i,j](i≥j)在数组中的位置k=? 1+2+…+n=(n+1)n/2 ***元素a[i,j]之前有i-1行。这i-1行共有1+2+…+i-1=(i-1)*i/2个元素。 ***元素a[i,j]在第i行。在该行中,它之前共有j-1个元素。 ***所以,a[i,j]是数组中的第(i-1)*i/2+j个元素。 ***k=(i-1)*i/2+j-1(若矩阵下标基于0,则k=i*(i+1)/2+j) 反之,如何根据k的值确定元素在矩阵中的位置(i,j)? k=(i-1)i/2+j-1 =2(k+1)=(i-1)i+2j =(i-1)22(k+1) ∴i=1+max{m|m(2(k+1))1/2} 三角矩阵:指主对角线下方(或上方)元素完全相同的矩阵。 存储结构:(请学生比较三角矩阵与对角矩阵的特点,找到三角矩阵的存储方法) 对角矩阵:对于n阶矩阵A,如果存在最小正数m 满足:当∣i-j∣≥m 时aij =0,则称A为对角矩阵(也称带状矩阵)。称w=2m-1为矩阵A的带宽。下图是一个w=3(m=2)的对角矩阵(称为三对角矩阵)。由下图可看出,在这种矩阵中,所有非零元素都集中在以主对角线为中心的带状区域中,即除了主对角线和它的上下方若干条对角线的元素外,所有其他元素都为零。 n阶三对角矩阵的存储结构 1、带状区域共有多少元素? 共有3n-2个。用数组SA[3n-2]存储。 2、如何确定矩阵的非零元素a[i,j]在数组中的位置? ***a[i,j]前共有i-1行。包含带区元素共3(i-1)-1=3i-4个(i1;i=1时为0个)。 ***a[i,j]在第i行。是该行带区的第j-(i-2)个元素(i1;i=1时为j个)。 ***k=3i-4+j-(i-2)-1=2i+j-3。(若矩阵下标基于0,则k=2i+j) 稀疏矩阵定义:指矩阵中非零元素的个数永远小于矩阵元素总数的矩阵。 存储结构 三元组表:将矩阵的非零元素的三元组(行、列和值)顺序存储在一维数组中,所得到的顺序表称为三元组表。数据类型可定义为: #define smax 10 //非零元素最大个数 typedef struct{ int i,j; //行号、列号 datatype v; //矩阵元素的值 }node; //三元组结点类型 typedef struct{ int m,n,t; //矩阵的总行数、总列数、非零元素个数 node data[smax]; }Spmatrix; //稀疏矩阵的类型 十字链表:每一个非零元素用一个结点表示。结点除描述行号、列号、值之外,还有两个指针:行指针rptr指向本行中下一个非零元素;列指针cptr指向本列中下一个非零元素。结点类型描述为: typedef struct node{int i,j,v;struct node *rptr,*cptr;}O
您可能关注的文档
最近下载
- 人流健康宣教ppt课件.pptx VIP
- 国开一网一 电子商务概论 实践任务(B2B电子商务网站调研报告).doc
- 工厂电工班安全培训课件.pptx VIP
- 《干粉灭火装置技术规程》CECS322:2012.docx
- (一诊)绵阳市2023级高三第一次诊断考试物理试卷A卷(含答案).docx
- 正和岛入岛申请表(更新版20141022).docx VIP
- 第二单元(知识清单)-2023-2024学年四年级语文上册单元速记·巧练(统编版).docx VIP
- DL_T 793.7-2022 发电设备可靠性评价规程 第7部分:光伏发电设备.docx VIP
- 整理超级个人简历模板(修改完后别忘了生成pdf再打印).doc VIP
- 2024智慧仓储解决方案[48页PPT].pptx VIP
原创力文档


文档评论(0)