网站大量收购独家精品文档,联系QQ:2885784924

ch25.pptVIP

  1. 1、本文档共16页,可阅读全部内容。
  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文档。上传文档
查看更多
ch25

第四讲 教学内容: 矩阵、广义表和动态存储管理 理解掌握矩阵的顺序存储表示; 理解动态存储管理方法,掌握三种常见的动态分配过程 2.5 矩阵 矩阵可以看做是线性表的线性表 逻辑结构(K,R)中: K是一个线性表的集合; R是K上的一个线性关系 Am×n可以看做由m个行向量组成的向量,也可以看成由n个列向量组成的向量 矩阵的顺序表示 行优先顺序:元素按行向量顺序排列 a00,a01,…a0n-1,a10,a11…am-10,…am-1n-1 列优先顺序:元素按列向量顺序排列 a00,a10,…am-10,a01,a11…am-11,…a0n-1,a1n-1,…am-1n-1 顺序存储的优缺点 优点:存储密度高,存取速度快 缺点:不适用上、下三角矩阵的存储 稀疏矩阵的表示方法 1.三元组表示法: 用数组存放稀疏矩阵中的非零元素, 每个结点包括3个字段:行下标,列下标,值 2.伪地址表示法: 每个结点包括2个字段:伪地址,值 伪地址:行优先顺序的相对位置 3.带辅助行向量的二元组表示法 4.行-列表示法 2.6 广义表与动态存储管理 广义表是由零个或多个元素组成的序列; 元素类型可以不同,可以是一个原子,也可以又是一个广义表; 子(广义)表:作为广义表元素的广义表; 广义表的长度:包含元素的个数; 广义表的深度:广义表中所包含括号的层 E=( ) L=(a,b) A=(x,L)=(x,(a,b)) B=(A,y)= ((x,(a,b),y)) C=(A,B)=((x,(a,b)), ((x,(a,b),y))) 动态存储管理 动态存储结构:单链表 使用时可自由插入和删除的数据结构 实现动态管理的基本函数 malloc();free( ) new delete 内存分配 等长结点的分配与回收 可利用空间表(avail):在系统运行初期,把可供链表动态分配的所有区间,按照结点node类型的大小链接起来构成的一个单链表; 与一般单链表的区别:它是动态存储管理系统中,用于管理和记录可以分配的结点空间的单链表,结点不包含用户定义的信息,链接顺序无关紧要. 不等长结点的分配与回收 1.建立多个可利用空间表,每个表对应一种固定长度;(不易实现共享) 2.组织一个可以管理各种大小结点的可利用空间表;(管理复杂,有碎片问题) 动态分配的三种查找方法 假设应用程序需要一个大小为N的结点,那么就要检索可利用空间表中的结点进行分配: 最佳适配:检索可利用空间表中的全部结点,在所有size=N的块中,找出最小的一块进行分配; 首先适配:在可利用空间表中找到第一个size=N的可利用块就进行分配; 最大适配:如果在可利用空间表中,每次都用最大的可利用块来分配; 举例: 假设可利用空间表中包含三个可利用块,其大小分别是:1200,1000,3000 现有如下一串存储分配的请求:900,2800,1100 看三种分配的过程: 最佳适配、首先适配、最大适配 第二章:线性表总结 理解线性表的逻辑结构特性,以及线性表的两种存储实现方式:顺序结构中元素之间的逻辑关系是通过存储位置直接反映,链式结构中元素之间的关系依赖结点的指针域来指示。 熟练掌握两种存储结构的描述方法。 链表是本章的重点和难点。 熟练掌握顺序表、链表的定义与基本运算实现(建立、查找、插入、删除等) 能够从时间和空间复杂度的角度综合比较线性表两种存储结构的不同特点及其适用场合。 掌握单链表的改进和扩充(矩阵的顺序表示); 了解广义表和动态存储管理 课堂练习: 已知单链表H,其元素是按照升序排列,设计高效算法,删除链表中所有大于min小于max的元素(如果存在这样的素),同时释放删除元素的结点空间。 * * ??计算每个元素的存储地址:假设每个元素占一个存储单元,已知第一个元素的存储位置 Loc(aij)=loc(a00)+i×n+j Loc(aij)=loc(a00)+j×n+i 1 9 2 b -1 e -1 7 a 5 -1 c 3 6 d Info link 0 1 2 3 4 5 6 7 8 9 0 4 8 List2 List1 avail 等长结点的分配与回收 *

文档评论(0)

报告论文库 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档