第5章 数组与广义表.doc
《第5章 数组与广义表.doc》由会员分享,可在线阅读,更多相关《第5章 数组与广义表.doc(10页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第5章数组和广义表(4学时)(一)教学目的: 掌握数组的定义及顺序表示与实现;掌握矩阵的压缩存储;广义表的定义及存储结构。(二)教学重点:1、数组的定义及其存储2、特殊矩阵的压缩存储3、稀疏矩阵逻辑结构和存储结构4、广义表的逻辑结构和存储结构5、数组和广义表的操作应用举例(三)教学难点:1、矩阵的压缩存储2、广义表的存储结构51数组的定义一、数组的抽象类型定义:数据对象:D= |n(0)称为数组的维数,bi是数组第i维的长度,ji是数组元素的第i维下标,ElemSet数据关系:R=R1,R2,Rn Ri= 0jkbk-1,1kn且ki,0jibi-2,D,I=2,n二、数组基本操作:1、Ini
2、tArray(&A,n,bound1,boundn)操作结果:若维数n和各维长度合法,则构造相应的数组A,并返回OK。2、DestroyArray(&A)操作结果:销毁数组A。3、Value(A,&e,indeex1,indexn)初始条件:A是n维数组,e为元素变量,随后是n个下标值。操作结果:若各下标不超界,则e赋值为所指定的A的元素值,并返回OK。4、Assign(&A,e,index1,indexn)初始条件:A是n维数组,e为元素变量,随后是n个下标值。操作结果:若下标不超界,则将e的值赋给所指定的A的元素,并返回OK。三、数组与线性表的关系:1、二维数组与线性表的关系:以把二维数组
3、看成是这样一具定长线性表:它的每个数据元素也是一个定长线性表。A=(a0,a1,ap) (p=m-1或n-1)其中每个数据元素aj是一个列向量形式的线性表aj=(a0j,aij,am-1j) 0jn-1ai=(ai0,ai1,ai,n-1) 0im-1在C语言中,一个二维数组类型可以定义为其分量类型为一维数组类型的一维数组类型,也就是说,typedef ElemType Array2mn;等价于 typedef ElemType Array1n;typedef Array1 Array2m;(a) (b) (C )图51二维数组图例(a)矩阵形式表示;(b)列向量的一维数组;(c)行向量的一维
4、数组2、n维数组与线性表的关系:同理,一个n维数组类型可以定义为其数据元素为n-1维数组类型的一维数组类型。四、数组的基本操作数组一旦被定义,它的维数和维界就不再改变。因此,除了结构的初始化和销毁之外,数组只有存取元素和修改元素值的操作。52数组的顺序表示和实现一、二维数组的顺序存储:则用一组连续存储单元存放数组的数据元素就有个次序约定问题。对二维数组可有两种存储方式:在扩展BASIC、PL/1、COBOL、PASCAL和C语言中,用的都是以行序为主序的存储结构,而在FORTRAN语言中,用的是以列序为主序的存储结构。(a) 以列序为主序 (b)以行序为主序图5.2 二维数组的两种存储结构二、
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第5章 数组与广义表 数组 广义
限制150内