数据结构teaching materials5.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文档。上传文档
查看更多
数据结构teaching materials5

* 数组(array)的基本概念 Ch 5 数组和广义表 数组是若干个类型相同的数据元素的有序集合。其中每个数据元素称之为一个数组元素,它通常用下标(index)标识,下标的个数取决于数组维数,且每个下标都具有固定的下界和上界,每一维的长度为该维的(上界–下界+1)。 数据对象 n维数组Ab1b2…bn中含有 ? bi (bi是数组第i维的长度)个数据元素, i=1 n 数据关系 每个数据元素均受n个关系的约束. 如2维数组的行、列关系:ai, j, ai, j +1、 ai, j, ai+1, j,3维数组中的每个元素考虑其3维关系则最多分别有3个前驱和3个后继), 依次类推m维数组中的每个元素则最多分别有m个前驱和m个后继. 因此, 多维数组(n?2)是一种复杂的非线性结构. n-Array = (D/数据对象, R/数据关系, O/基本操作) ? 描述:P90 基本操作 (1)初始化即定义一个数组(2)存取或修改数组元素的值 但不允许进行插入、删除运算(why?) 其中每个数组元素记为aj1j2…jn, ji表示n维中的第i维(i=1,2,..,n)且ji=1,2,…,bi (或记作1..bi) 或 ji=0,1,…,bi–1(或记作0..bi–1) 如: A6 --- 一维数组A(即n=1), 长度为6(即b1=6), a1~a6或a0~a5 A4?5 --- 二维数组A(即n=2), 长度分别为4和5(即b1=4, b2=5), a11~a45或a00~a34 数组的顺序存储 n=1时, 1维数组便退化为一个定长的线性表 n=2时, 2维数组可看作一个扩展的定长的线性表: Am?n = (?1, ?2, ???, ?p) ? 它的每个数据元素又均是一个定长的线性表 即?i = (ai1, ai2, … , ain,) 或 ?i = (a1i, a2i, … , ami,) 因此,一个n维数组可定义成其数据元素为n–1维数组类型的一维数组类型 p=m行优先 p=n 列优先 如何用线性的(即一维的)存储结构来表示非线性的多维数组? 先按某种次序将数组元素排成一个线性序列, 然后再将其依次存放至RAM. 行优先顺序(Row-Major Ordering) 列优先顺序(Column-Major Ordering) ? ? 因为数组一旦建立, 存储结构中的元素个数和元素之间的关系就不再发生变化. 因此一般都只采用顺序存储的方法来表示数组. 注: C/C++, Delphi, VB中的数组均是按行优先顺序存储的. typedef ElemType A[m][n]; //m?n的二维数组 或typedef ElemType A1[n]; //含n个元素的一维数组 typedef A1 A[m]; //含m个元素的一维数组 //A中每个元素是A1类型 上述的行、列优先顺序可推广到维数更高的数组: 行优先规定为先按最右的下标排, 从右向左, 最后按最左下标排. 列优先则先按最左的下标排, 从左向右, 最后按最右下标排. 如: 三维数组Am?n?p按行优先, 则: a1,1,1 a1,1,2 … a1,1,p a1,2,1 a1,2,2 … a1,2,p … a1,n,1 … a1,n,p a2,1,1 … a2,1,p a2,2,1 …a2,2,p …am,1,p …am,n,p Loc(ai,j,k)=Loc(a1,1,1)+[(i-1)?n?p +(j-1)?p + k-1]?L 数组的顺序存储 — 一个例子 以二维数组为例 Loc( ai,j) = Loc(a1,1)+[(i-1)?n+(j-1)]?L ??以行为主序存放 amn … am2 am1 … a2n … a22 a21 a1n … a12 a11 0 1 n-1 m?n-1 n ( ) ( ) ( ) ( ) ( ) ( ) ( ) (

文档评论(0)

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

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

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档