- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第五章 数组数据结构ppt 严蔚敏
第五章 数组 1.数据元素可为结构类型的线性表 2.几乎所有的高级程序设计语言中都将数组类型作为固有类型,在此我们以抽象数据类型的形式来讨论其定义和实现 数组的ADT定义 ADT Array{ 数据对象: ji = 0,…,bi-1, i=1,2,…,n D = {aj1j2…jn | n称为数组的维数, bi是数组第i维的长度, ji是数组元素的第i维下标, aj1j2…jn ElemSet R = {R1, R2, …, Rn} //每个元素受到n个关系的约束 Ri = {aj1…ji…jn, aj1,,,ji+1…jn | 0 jk bk-1, 1 k n 且 k i 0 ji bi-2, aj1…ji…jn, aj1,,,ji+1…jn D, i = 2,…n} P: InitArray(A, n, bound1, …, boundn) DestoryArray(A) Value(A, e, index1, …, indexn) //取出元素值 Assign(A, e, index1, …, indexn) //给元素赋值 }ADT Array 数组的ADT定义 n维数组中含有 个数据元素,每个元素受到n个关系的约束,且这n个关系都是线性关系。当n=1时,n维数组就退化为定长的线性表。反之,n维数组也可以看成是线性表的推广 数组中的每个元素都对应于一组下标(j1,…,jk),每个下表的取值范围是0 ji bi-1, bi称为第i维的长度 数组一旦被定义,它的维数和维界就不再改变 数组结构操作 初始化、销毁、元素的存取和修改 不过,数组多用于静态数据处理,一般不作插入和删除操作 数组特点 数组中各元素都具有统一的类型 d维数组的非边界元素具有d个直接前趋和d个直接后继数组维数确定后,数据元素个数和元素之间的关系不再发生改变,适合于顺序存储 每组有定义的下标都存在一个与其相对应的值 数组的顺序表示 数组通常采用顺序存储方式来实现 n维数组的数据元素的存储问题 必须约定存放次序 因为存储单元是一维的,而数组是多维的 存储方案 以行序为主序,如C, Pascal, Basic等语言采用 以列序为主序,如Fortran语言采用 数组一旦定义了维数和各维长度,便可为其分配存储空间 只要给出一组下标便可求得相应元素的存储位置 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 ……. a21 a11 a11 a12 …….. a1n a21 a22 …….. a2n am1 am2 …….. amn …………………. Loc(aij)=Loc(a11)+[(j-1)m+(i-1)]*l 数据元素的存储问题 一维数组为例 如 int A[b1], 共占用b1个整型存储单元 给定下标值i,求对应元素的存储位置 Loc(i) = Loc(0) + i * L 数组基
原创力文档


文档评论(0)