数据结构第五章数组和广义表.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.1 数组的定义 5.2 数组的顺序表示和实现 5.3 矩阵的压缩存储 5.3.1 特殊矩阵 5.3.2 稀疏矩阵 重点:数组的两种存储表示方式及元素存储地址的计算公式;特殊矩阵和稀疏矩阵的压缩存储方法; 难点:特殊矩阵和稀疏矩阵的压缩存储方法及运算的实现。 数组可看成是一种特殊的线性表,其特殊在于,表中的数据元素本身也是一种线性表。 5.1 数组的定义 数组是我们最熟悉的数据类型,在早期的高级语言中,数组是唯一可供使用的数据类型。由于数组中各元素具有统一的类型,并且数组元素的下标一般具有固定的上界和下界,因此,数组的处理比其它复杂的结构更为简单。多维数组是向量的推广。 在C语言中,一个二维数组类型可以定义为其分量类型为一维数组类型的一维数组类型. 数组的抽象数据类型定义 ADT Array { 数据对象: ji=0,…,bi-1 i=1,2,…,n D={aj1j2…jn|n称为数组的维数, bi称为第i维的长度} 数据关系: R={R1,R2,…,Rn} Ri={aj1…ji…jn, aj1…ji+1…jn | 0≤ jk≤bk-1, 1 ≤k ≤n,且k≠i, 0≤ ji≤bi-2, i=2,…,n } 基本操作: } 二维数组的抽象数据类型定义 ADT TArray { D={ai,j|ai,j∈ElemType, } R=R1,R2 R1=Row={ai,j-1,ai,j } R2=Col={ai-1,j,ai,j } } a00, ……,a0,b2-1 . …… . …… . …… . …… ab1-1,0,……,ab1-1,b2-1 基本操作 InitArray(A,n,bound1,…,boundn) DestoryArray(A) Value(A,e,index1,…,indexn) //取得根据下标(index1,…,indexn)确定的元素的值,并将之赋于变量e Assign(A,e,index1,…,indexn) //找到根据下标(index1,…,indexn)确定的元素,并将变量e的值赋于它 数组的性质: (1) 数组中的数据元素数目固定。一旦定义了一个数组,其数据元素数目不再有增减变化。它属于静态分配存储空间的数据结构。 (2) 数组中的数据元素必须具有相同的数据类型。 (3) 数组中的每个数据元素都有一组唯一的下标值。 (4) 数组是一种随机存取结构。可随机存取数组中的任意数据元素。 5.2 数组的顺序表示和实现 通常有两种顺序存储方式: ⑴行优先顺序(低下标优先)——将数组元素按行排列,第i+1个行向量紧接在第i个行向量后面。 ⑵列优先顺序(高下标优先)——将数组元素按列向量排列,第j+1个列向量紧接在第j个列向量之后 对一个以行序为主序的计算机系统,当二维数组第一个数据元素a0,0的存储地址LOC(a0,0)以及每个数据元素所占用的存储单元k确定后,该二维数组中任一数据元素ai,j的存储地址可由下式确定: LOC(ai,j)=LOC(a0,0)+(i×b2+j) k 其中b2为列数。 推广到一般情况,可得到n维数组数据元素存储位置: LOC[j1j2…jn]=LOC[00…0]+(b2×…×bn×j1+ b3×…×bn×j2+…+bnjn-1+jn) × k 称为n维数组的映像函数。 数组元素的存储位置是其下标的线性函数 例1:有m名学生,每人考n门功课,试写出求任一学生总分数和任一课程总分数的数据结构和算法。 【解】把学生的考试成绩存放在m行n列的二维数组中,则第i(0≤im)行第j(0≤jn)列中存放了第i个学生的第j门课程考试成绩。 static public int Student_Sum(int[,] score, int i) { int sum = 0; for(int j = 0;jscore.GetLength(1);j++) {//score.GetLength(1)方法可以获得第二维的长度 sum

文档评论(0)

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

分享好文档!

1亿VIP精品文档

相关文档