数组和广义表 - 浙江工商大学.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文档。上传文档
查看更多
数组和广义表 - 浙江工商大学

5.5 广义表 5.5.2 广义表实例 D=()空表;其长度为零。该广义表也可记为D()。 A=(a,(b,c))表长度为2的广义表,其中第一个元素是单个数据a,第二个元素是一个子表(b,c)。该广义表也可记为A(a,(b,c))。 B=(A,A,D)长度为3的广义表,其前两个元素为表A,第三个元素为空表D。该广义表也可记为B(A,A,D)。 C=(a,C)长度为2递归定义的广义表,C相当于无穷表C=(a,(a,(a,(…))))。该广义表也可记为C(a,C)。 head(A)=a 表A的表头是a。 tail(A)=((b,c))表A的表尾是((b,c))。广义表的表尾一定是一个表。 5.5 广义表 5.5.3 广义表图形表达 D=() A=(a,(b,c)) B=(A,A,D) C=(a,C) 图中的分支结点对应广义表,叶子结点对应原子或空表 5.5 广义表 5.5.4 广义表存储结构 D=() A=(a,(b,c)) B=(A,A,D) C=(a,C) (a)表结点 (b)原子结点 方式一 表头指针 header pointer 表尾指针 tail pointer 5.5 广义表 5.5.4 广义表存储结构 D=() A=(a,(b,c)) B=(A,A,D) C=(a,C) (a)表结点 (b)原子结点 方式二 兄弟指针 sibling pointer 表头指针 header pointer 总结 数据结构概论 第5章 数组和广义表 董黎刚 浙江工商大学信电学院 1. 数组的逻辑结构 5.1 数组的逻辑结构 5.1.1 背景 数组(Array)是一种逻辑结构,是一种特殊的线性表:不能插入和删除元素(因为数组中元素的个数固定)。换句话说,数组是操作受限的线性表。 5.1 数组的逻辑结构 5.1.2 数组的特点 数组中不能插入和删除元素。因此一般数组都适合用顺序表存储(回避了顺序表的缺点)。 矩阵Am×n可以视为m*n个元素的线性表。然而,数组的数据元素也可以视为一个线性表,比如二维数组是“数据元素为一维数组(线性表)”的线性表。 5.1 数组的逻辑结构 5.1.2 数组的特点 二维数组中元素的顺序:行优先和列优先 5.1 数组的逻辑结构 5.1.2 数组的特点 按行优先顺序,元素aij的地址是Loc[i,j]=Loc[1,1]+n×(i-1)+(j-1) 如果每个元素占size个存储单元,则为: Loc[i, j]=Loc[1, 1] +(n×(i-1)+j-1)×size 5.1 数组的逻辑结构 5.1.3 操作 InitArray(A, n, bound1, …, boundn):若维数n和各维的长度合法,则构造相应的数组A,并返回TRUE。 DestroyArray(A):销毁数组A。 GetValue(A,e, index1,…, indexn):用e返回数组A中由index1,…, indexn所指定的元素的值。 SetValue(A,e,index1, …, indexn):将数组A中由index1, …, indexn所指定的元素的值置为e。 2. 三角矩阵和带状矩阵的压缩存储 5.2 三角矩阵和带状矩阵的压缩存储 5.2.1 背景 对于一些特殊矩阵,存储全部元素将是浪费空间,因此需要压缩存储。压缩的策略主要是两条: 为多个相同的非零元素只分配一个存储空间 对零元素不分配空间 本学习点学习三角矩阵和带状矩阵等两类矩阵的压缩存储。 5.2 三角矩阵和带状矩阵的压缩存储 5.2.2 三角矩阵 三角矩阵大体分为三类:下三角矩阵、上三角矩阵和对称矩阵。 下三角矩阵中,它的上三角(不包括主角线)中的元素均为常数c(经常c=0)。上三角矩阵与下三角矩阵相反。 5.2 三角矩阵和带状矩阵的压缩存储 5.2.3 三角矩阵 压缩存储思想:只存储下三角的元素(下面采用行优先) 原矩阵 5.2 三角矩阵和带状矩阵的压缩存储 5.2.3 三角矩阵 aij的位置 5.2 三角矩阵和带状矩阵的压缩存储 5.2.3 三对角带状矩阵 压缩存储思想:存储带状区域元素 原矩阵 5.2 三角矩阵和带状矩阵的压缩存储 5.2.3 三对角带状矩阵 aij的位置 3. 稀疏矩阵的压缩存储——三元组表 5.3 稀疏矩阵的压缩存储——三元组表 5.3.1 背景 稀疏矩阵(sparse matrix)就是多数元素为0的矩阵。如果还是存储每个元素,可能是浪费空间。 为决定存储方式,引用一个指标——稀疏因子? =t/(m*n) ,其中t为非零元素个数。 稀疏矩阵的?一般小于0.05 5.3 稀疏矩阵的压缩存储——三元组表 5.3.2 三元组表表示法 存储思想:只存储非零元

文档评论(0)

wujianz + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档