数据结构5数组和广义表6.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数组和广义表6

只有一个下标的数组称为一维数组。 typedef DataType Array[n]; Array a ;它是一个线性表。 假设每个元素需占用L个存储单元,则 Loc(ai)=Loc(a0) + i * L 如果上面数组中的基类型仍是一维数组类型就构成二维数组。 typedef DataType Array[n]; typedef Array Array_2[m]; 在C语言中也可以合写在一起: typedef DataType Array_2[m][n]; 二维数组是线性表的线性表。 以行序为主序,或以列序为主序。 压缩的理论基础是信息论。从信息论的角度来看,压缩就是去掉信息中的冗余,即保留不确定的信息,去掉确定的信息(可推知的),也就是用一种更接近信息本质的描述来代替原有冗余的描述。这个本质的东西就是信息量(即不确定因素)。 压缩存储:对多个值相同的元素只分配一个存储空间,对值为0的元素不分配存储单元。 特殊矩阵:值相同的元素或者零元素在矩阵中的分布有一定规律。 一.下三角矩阵 i≥j a00 a10 a11 a20 a21 a22 …… ai-1,0 ai-1,1 … ai-1,i-1 ai,0 ai,1 … ai,j-1 ai,j … ai,i 二. 对称矩阵 若一个n阶矩阵A中的元素满足下述性质: aij = aji , 1≤i , j ≤ n 如: 1 2 3 4 2 5 8 10 3 8 6 11 4 10 11 7 如果矩阵中的非零元较少,且分布没有规律,称之为稀疏矩阵。 为节省空间,可以只存储矩阵中的非零元 对非零元素aij,可以用一个三元组 (row,col,aij) 来表示。 一. 顺序存储 用一个结构数组存储三元组表,另外3个量mu, nu, tu来分别存储矩阵的行数、列数及非零元的个数。 #define NUM 大于非零元个数的某个常量 typedef struct { int row,col ; ElemType val ; } Tuple3Type ;// 定义三元组 typedef struct { int mu, nu, tu; //矩阵的行数、列数和非零元个数 Tuple3Type data[NUM]; // 行主序的三元组表 } SpMatrix; 二、链式存储:十字链表 广义表是线性表的推广,英文用Lists表示。广义表中的元素可以具有不同的结构。 广义表一般记为: LS = (d1, d2, … , dn) 5.1、5.2、5.5、 5.11(2)(4)(6)、 5.12(2)、 5.13、 5.23 (先定义数据类型) 5.30 一般用大写字母表示广义表的名称,小写字母表示单元素。 广义表的名称 LS的元素 单元素 广义表:称为 LS的子表 广义表 元素 广义表的定义具有递归性。 广义表是一个多层次的线性结构 例如: D=(E, F) 其中: E=(a, (b, c)) F=(d, (e)) D E F a ( ) d ( ) b c e 广义表 LS = ( d1, d2, …, dn )的结构特点: 1) 广义表中的数据元素有相对次序; 广义表的长度定义为最外层包含元素个数; LS = (d1,d2, … ,dn); length(LS)=n。 3) 广义表的深度定义为所含括弧的重数; 设LS = (d1, d2, … ,dn) 0 , LS为单元素 depth(LS)= 1 ,LS为空表 1 + max{depth(di)} 表尾:删除第一个元素,剩下的元素组成的表 TAIL(LS) = (d2,d3, …,dn) 4) 广义表可以共享; 5) 广义表可以是一个递归的表; 递归表的深度是无穷值,长度是有限值 6) 任何一个非空表可以分成表头和表尾; 设:LS = (d1, d2, … , dn) 表头:当LS非空时,称第一个元素d1为LS的表头 HEAD(LS)= d1 一定是表 可能是单元素,也可能是表 由表头和表尾,可以构成

文档评论(0)

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

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

版权声明书
用户编号:5024214302000003

1亿VIP精品文档

相关文档