线性表-公开课件.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文档。上传文档
查看更多
数组 数组是一种特殊的线性表 表中的数据元素本身也是一种线性表 数组的定义 若线性表中的数据元素为简单元素,则称为一维数组,即向量 若一维数组中的数据元素都是一个一维数组,则称为二维数组 若二维数组中的数据元素都是一个一维数组,则称为三维数组 数组是线性表的扩展 数组特点:结构固定,元素同构 二维数组 数组A可看成一个线性表 A=(a0,a1 ,...,ak ) k=m-1或n-1 ai 或者是行向量 ai =(ai0 ,ai1 ,...,ai,n-1 ) 0≤i≤m-1 ai或者是列向量 aj =(a0j ,a1j ,...,am-1,j ) 0≤j≤n-1 数组的顺序存储结构 次序约定 以行序为主序 以列序为主序 矩阵的压缩存储方法 压缩存储 为多个值相同的元素只分配一个存储空间 对零元素不分配空间 矩阵的存储示例 稀疏矩阵 定义 非零元较零元少,且分布没有一定规律的矩阵 压缩存储原则 只存矩阵的行列维数和每个非零元的行列下标及其值 稀疏矩阵的三元组表示法 稀疏矩阵转置算法一 算法思想 将矩阵A的行数和列数互换=矩阵B 将每个三元组的i和j互换=矩阵B 对三元组表B,按其行序进行排序 转置后的三元组B以行(即A的列)为主序排列 稀疏矩阵转置算法二 算法思想 按矩阵A的列序进行转置 首先寻找矩阵A的第1列的所有三元组,将其(i,j,v)改为(j,i,v)后依次存放到矩阵B的三元组表中 然后中寻找矩阵A第2列的所有三元组,将其(i,j,v)改为(j,i,v)后依次存放到矩阵B的三元组表中 依次类推 转置后的三元组B以行(即A的列)为主序排列 稀疏矩阵的转置算法分析 算法的主要耗费时间是在col和p的两重循环中,所以算法的时间复杂度为O(nu*tu) 即和(A的列数与非零元素的个数的乘积)成正比 当非零元个数值tu-m*n时(m、n分别表示数组的行列数),算法的时间复杂度成为O(m*n2 ) 上述转置算法只适用于: tum*n的情况 快速转置算法如下: void fasttrans(mat b,mat a) { int p,q,col,k; int num[a.n+1],cpot[a.n+1]; b.m=a.n; b.n=a.m; b.t=a.t; if(b.t=0) printf(“a=0”\n); for(col=1;col=a.n;++col) num[col]=0; for(k=1;k=a.t;++k) ++num[a.data[k].j]; 十字链表的建立算法 算法步骤 将行、列指针数组置空。假设m,n分别是行指针和列指针数组,hs,ls是指向存放矩阵行数和列数变量的指针变量。 输入三元组,若行下标或列下标为0时,则表示输入完毕,算法结束,否则生成p结点,并把行、列、值域分别置为x,y,z 。 把p结点插入到第x行链表中。 把p结点插入到第y列链表中转向步骤2。 线性表的应用示例 线性表的逆置运算 顺序存储结构上的实现 链式存储结构上的实现 链表合并 多项式相加(链式存储结构) 一元多项式的表示及相加 一元多项式的表示 单链表的结点定义 本章要点 线性表的逻辑结构、物理结构、基本运算及运算实现的算法。 顺序表上的插入和删除算法及链表的建立、查找、插入和删除算法。 线性表的典型算法的应用及解决问题的方法。 数组的压缩存储及运算 数组运算 给定下标,存取数据元素 给定下标,修改数据元素 一般不做插入或删除操作 a11 a12 …….. a1n a21 a22 …….. a2n am1 am2 …….. amn …………………. Loc( aij)=Loc(a11)+[(i-1)n+(j-1)]*l ??按行序为主序存放 amn …….. am2 am1 ………. a2n …….. a22 a21 a1n ……. a12 a11 0 1 n-1 m*n-1 n ??按列序为主序 0 1 m-1 m*n-1 m amn …….. a2n a1n ………. am2 …….. a22 a12 am1 …….

文档评论(0)

老刘忙 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档