- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构第五章 数组和广义表 * 第五章 数组 5.1 数组的类型定义 5.1 数组的类型定义 5.1 数组的类型定义 5.1 数组的类型定义 基本操作: 5.2 数组的顺序表示和实现 通常有两种顺序存储方式: 5.2 数组的顺序表示和实现 通常有两种顺序存储方式: 5.2 数组的顺序表示和实现 例如,二维数组Amn按“行优先顺序”存储在内存中,假设每个元素占用d个存储单元。 5.2 数组的顺序表示和实现 稀疏矩阵 5.3 稀疏矩阵的压缩存储 5.3 稀疏矩阵的压缩存储 特殊矩阵 特殊矩阵 (1)、对称矩阵 特殊矩阵 (1)、对称矩阵 特殊矩阵 (1)、对称矩阵 (2)三角矩阵 (3)对角矩阵 稀疏矩阵 稀疏矩阵的几种表示方法 一、三元组顺序表 一、三元组顺序表 求转置矩阵的操作: 稀疏矩阵M的转置矩阵T 稀疏矩阵M的转置矩阵T 稀疏矩阵的几种表示方法 二、行逻辑联接的顺序表 二、行逻辑联接的顺序表 两个稀疏矩阵相乘 二、行逻辑联接的顺序表 以行逻辑联接的顺序表表示稀疏矩阵时,两个稀疏矩阵相乘(Q?M?N)的过程可大致描述如下: 二、行逻辑联接的顺序表 分析上述算法的时间复杂度有如下结果: 二、 十字链表 三、 十字链表 每个非零元既是某个行链表中的一个结点,又是某个列链表中的一个结点,整个矩阵构成了一个十字交叉的链表,故称这样的存储结构为十字链表,可用两个分别存储行链表的头指针和列链表的头指针的一维数组表示之。例如:矩阵M的十字链表 示例 二、 十字链表 将矩阵B加到矩阵A上 二、 十字链表 将矩阵B加到矩阵A上 二、 十字链表 将矩阵B加到矩阵A上 二、 十字链表 将矩阵B加到矩阵A上 二、 十字链表 将矩阵B加到矩阵A上 5.4 广义表的类型定义 5.4 广义表的类型定义 5.4 广义表的类型定义 广义表的结构特点: 5.4 广义表的类型定义 基本操作: 5.5 广义表的表示方法 广义表的树形图示 5.5 广义表的表示方法 广义表的存储结构 广义表的存储结构 1、单链表法 广义表的存储结构 2、双链表法 本章小节 Thank you ! Status MultSMatrix(RLSMatrix M, RLSMatrix N, RLSMatrix Q) {//求矩阵乘积Q=M× N,采用行逻辑链接存储表示。 if (M.nu != N.mu) return ERROR; Q.mu = M.mu; Q.nu = N.nu; Q.tu = 0; // Q初始化 if (M.tu*N.tu != 0) { // Q是非零矩阵 for (arow=1; arow=M.mu; ++arow) { // 处理M的每一行 Q.rpos[arow] = Q.tu+1; ctemp[] = 0; // 当前行各元素累加器清零 for (p=M.rpos[arow]; pM.rpos[arow+1];++p) {//对当前行中每一个非零元 brow=M.data[p].j; //找到对应元在N中的行号 if (brow N.nu ) t = N.rpos[brow+1]; else { t = N.tu+1 } for (q=N.rpos[brow]; q t; ++q) { ccol = N.data[q].j; // 乘积元素在Q中列号 ctemp[ccol] += M.data[p].e * N.data[q].e; } // for q } // 求得Q中第crow( =arow)行的非零元 for (ccol=1; ccol=Q.nu; ++ccol) // 压缩存储该行非零元 if (ctemp[ccol]) { if (++Q.tu MAXSIZE) return ERROR; Q.data[Q.tu] = {arow, ccol, ctemp[ccol]}; } // if } // for arow } // if return OK; } // MultSMatrix 累加器ctemp初始化的时间复杂度为?(M.mu? N.mu),求Q的的时间复杂度为 ?(M.tu?N.tu/N.mu),进行压缩存储的时间复杂度为?(M.mu?N.nu), 总的时间复杂度就是?(M.mu?N.nu+M.tu?N.tu /N.mu)。 若M是m行n列的稀疏矩阵,N是n行p列的稀疏矩阵, 则M中非零元的个数 M.tu = ?M?m?n, N中非零元的个数 N.tu = ?N?n?p,
您可能关注的文档
最近下载
- ESG培训企业培训课件.pptx VIP
- 旅游人力资源管理(第2版)全套PPT课件.pptx
- 风景园林专业中级职称考试复习题含答案.doc VIP
- 小学音乐人音版五年级上册:第4课 可爱的家-教学课件《外婆的澎湖湾》.pptx
- 《秸秆综合利用》课件.pptx VIP
- 天然气锅炉司炉工培训ppt课件.pptx
- 2025年中职高考中职英语二轮专题非谓语动词课件(共148张PPT).pptx VIP
- 医疗器械分类目录(24页).pdf VIP
- 2025年苏州卫生职业技术学院高职单招笔试语文试题库含答案解析(5套共100道单选合辑).docx VIP
- 横琴总体发展规划-珠海横琴新区地方税务局门户网站.DOC VIP
文档评论(0)