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

北京化工大学数据结构课件第五章 数组和广义表.ppt

北京化工大学数据结构课件第五章 数组和广义表.ppt

  1. 1、本文档共26页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第5章 数组与广义表 一、数组 数组的定义 数组是以同型元素为数据元素的线性表。 数组以下标作为元素的标识,通过下标访问各个元素。 多维数组 多维数组是以同型线性表为数据元素的线性表。 这里的同型指得是具有相同元素类型和相同的表长。 一、数组 多维数组的实现 用一维顺序结构线性表实现多维数组 一、数组 一维下标与多维下标之间的换算 设多维数组A(l0,l1,..,ln-1),存贮在一个顺序线性表S中。 从一维下标换算到多维下标 S(i) ? A(i0,i1,..,in-1) 从多维下标换算到一维下标 A(i0,i1,..,in-1) ? S(i) 一、数组 多维数组的基本操作 初始化和撤销 按下标访问元素A( i0, i1, i2, .. in-1 ) 二、稀疏矩阵 定义 含有较多零元的矩阵称为稀疏矩阵。 稀疏矩阵的压缩存贮 只存贮非零元,以减少存贮空间。 二、稀疏矩阵 特殊矩阵 非零元的分布非常有规律。 将非零元存贮于一维空间中,根据非零元的分布规律建立矩阵行列与一维下标之间的映射关系。 二、稀疏矩阵 三元组法 二、稀疏矩阵 三元组法 矩阵转置 二、稀疏矩阵 带行向量的三元组法 二、稀疏矩阵 带行向量的三元组法 矩阵乘法 二、稀疏矩阵 十字链表法 三 、广义表 广义表的定义 广义表 子表 原子 广义表的深度 三 、广义表 广义表的实现 头尾链表法 表头 表尾 三 、广义表 广义表的实现 扩展线性表法 三 、广义表 广义表的运算 广义表的深度 广义表的复制 第5章 数组与广义表 * M[0][3][2] M[0][0][0] M[0] M[1] M[2] M[3] M[0][3] 以一个3维数组M[4][5][3]为例,如下图所示: struct Array { ElemType *buffer; // 数据区 int dims; // 维数 int *L; // 各维长度 }; 设一3维数组A[4][2][3], 存贮在一个顺序线性表S中, 结构如下所示: A312 A311 ... A101 A100 A012 A011 A010 A002 A001 A000 22 ... 23 7 6 5 4 3 2 1 0 A312 A311 A310 A302 A301 A300 A212 A211 A210 A202 A201 A200 A112 A111 A110 A102 A101 A100 A012 A011 A010 A002 A001 A000 A312 A311 A310 A302 A301 A300 A212 A211 A210 A202 A201 A200 A112 A111 A110 A102 A101 A100 A012 A011 A010 A002 A001 A000 an-1,n-1 ... a22 a21 a20 a11 a10 a00 n(n+1)/2-1 ... 5 4 3 2 1 0 以三角阵为例: i j 8 4 4 6 2 5 2 5 5 4 2 4 11 3 2 3 7 3 1 2 5 4 0 1 2 1 0 0 data col row mu:5 nu:6 tu:7 8 4 4 6 2 5 2 5 5 4 2 4 11 3 2 3 7 3 1 2 5 4 0 1 2 1 0 0 data col row mu:5 nu:6 tu:7 2 2 5 6 8 4 4 5 5 2 4 4 5 0 4 3 11 2 3 2 7 1 3 1 2 0 1 0 data col row mu:6 nu:5 tu:7 8 4 4 6 2 5 2 5 5 4 2 4 11 3 2 3 7 3 1 2 5 4 0 1 2 1 0 0 data col row 2 2 5 6 8 4 4 5 5 2 4 4 5 0 4 3 11 2 3 2 7 1 3 1 2 0 1 0 data col row 6 5 3 4 1 3 1 2 0 1 0 0 rpos 1 5 3 4 2 3 0 2 1 1 0 0 rsum 方法1:先转置复制,再排序 方法2:对目标矩阵逐行扫描 方法3:用行向量指导转置 8 4 4 6 2 5 2 5 5 4 2 4 11 3 2 3 7 3 1 2 5 4 0 1 2 1 0 0 data col row mu:5 nu:6 tu:7 4 3 2 1 0 6 3 3 2 0 rpos + + + ∧ ∧ 5 4 3 2 1 0 4 3 2 1 0 ∧ ∧ ∧ 2 ∧ 5 ∧ 7 ∧ 11 ∧ ∧ 2 ∧ ∧ 8 5 ((a), (b, ()), ((c, d), e), f, ()) () (()) ((a), (b, (c)),e) () (()) ((), ()

您可能关注的文档

文档评论(0)

ormition + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档