数据结构数组与广义表.ppt
《数据结构数组与广义表.ppt》由会员分享,可在线阅读,更多相关《数据结构数组与广义表.ppt(46页珍藏版)》请在优知文库上搜索。
1、第五章第五章 数组和广义表数组和广义表1第五章第五章 数组和广义表数组和广义表l本章前讨论的线性结构数据元素都是非结构本章前讨论的线性结构数据元素都是非结构的的原子类型原子类型,元素值不可再分。本章讨论了,元素值不可再分。本章讨论了两种数据结构两种数据结构数组和广义表。作为线性表数组和广义表。作为线性表的扩展,表中的数据元素也是一种数据结构。的扩展,表中的数据元素也是一种数据结构。l数组数组这种数据结构可以看成这种数据结构可以看成是线性表的推广是线性表的推广。l广义表广义表是另一种推广形式的线性表,是一种是另一种推广形式的线性表,是一种灵活的数据结构,在许多方面有广泛的应用。灵活的数据结构,在
2、许多方面有广泛的应用。2知识结构图知识结构图数组与广义表数组与广义表 数数 组组广义表广义表类型定义类型定义表示方法表示方法稀疏矩阵稀疏矩阵特殊矩阵特殊矩阵存储结构存储结构逻辑结构逻辑结构 应用应用压缩存储压缩存储各种运算各种运算35.1 数组数组数组数组是是n(n1)个相同数据类型的数据元素个相同数据类型的数据元素a0,a1,a2,.,an-1构成的占用一块地址连续的内存单元的有限序列。构成的占用一块地址连续的内存单元的有限序列。数组中任意一个元素可以用该元素在数组中的位置来表示,数组中任意一个元素可以用该元素在数组中的位置来表示,数组元素的位置通常称作数组元素的位置通常称作数组的下标数组的
3、下标。45.1.1 数组的概念及其与线性表的关系数组的概念及其与线性表的关系 由定义知由定义知,n维数组中有维数组中有b1 b2 bn个数据元素个数据元素,每个每个数据元素都受到数据元素都受到n维关系的约束维关系的约束。直观的直观的n维数组维数组 以二维数组为例讨论。以二维数组为例讨论。将二维数组看成是一个定长的线性表,将二维数组看成是一个定长的线性表,其每个元素又是一个定长的线性表其每个元素又是一个定长的线性表。 设二维数组设二维数组A=(aij)m n,则,则 A=(1,2,p) (p=m或或n)其中每个数据元素其中每个数据元素j是一个列向量是一个列向量(线性表线性表) : j =(a1j
4、 ,a2j ,amj) 1jn或或是一个行向量是一个行向量: i =(ai1 ,ai2 ,ain) 1im如图如图5-1所示。所示。5 a11 a12 a1n a21 a22 a2n am1 am2 amnA= A=a11 a12 a1na21 a22 a2nam1 am2 amna11 a21 am1a12 a22 am2a1n a2n amnA=图图5-1 二维数组图二维数组图例形式例形式(a) 矩阵矩阵表示形式表示形式(b)行行向量的一维数组形式向量的一维数组形式(c)列向量的一维数组形式列向量的一维数组形式6n维数组的特点维数组的特点l每个数据元素都受着每个数据元素都受着n n个关系的
5、约束;个关系的约束;l在每个关系中,元素在每个关系中,元素 (0=j(0=ji i=b=bi i-2)-2)都有一个直接后继都有一个直接后继; ;l数据元素都必须属于同一数据类型数据元素都必须属于同一数据类型; ;ln=1n=1时,退化为定长的线性表;时,退化为定长的线性表;ln n维数组可以看成是线性表的推广。维数组可以看成是线性表的推广。l数组一旦被定义,则维数已定,对于数组的操作只有存取元数组一旦被定义,则维数已定,对于数组的操作只有存取元素和修改元素。素和修改元素。( (一旦建立了数组,数组中的元素个数和元一旦建立了数组,数组中的元素个数和元素之间的关系就不再发生变动素之间的关系就不再
6、发生变动) )l数组是多维的结构,而存储空间是一个一维的结构。(存储数组是多维的结构,而存储空间是一个一维的结构。(存储时需要一个次序约定)时需要一个次序约定)njjja.2175.1.2 数组的顺序存储结构数组的顺序存储结构数组的实现机制数组的实现机制(1)ina一一维维数数组组( ( 个个元元素素) )中中任任一一元元素素 的的内内存存单单元元地地址址0()()*(0)iLoc aLoc ai Lin a的内存单元地址的内存单元地址每个元素所需的字节个数每个元素所需的字节个数(2)mn一一维维 行行 列列的的二二维维数数组组00()()( *)*ijLoc aLoc ai njL00()(
7、)( *)*ijLoc aLoc aj miL00010,110111,11,01,11,1nnmmmnaaaaaaAaaa811221122(3), . ,.cdcdA cd cd更更一一般般地地假假设设二二维维数数组组行行下下界界是是行行上上界界为为列列下下界界为为列列上上界界为为,即即数数组组。12,1222()()()*(1)()*ijc cLoc aLoc aicdcjcL以以行行序序为为主主序序的的求求元元素素地地址址的的公公式式:12,2111()()()*(1)()*ijc cLoc aLoc ajcdcicL以以列列序序为为主主序序的的求求元元素素地地址址的的公公式式:9数组
8、的顺序表示数组的顺序表示- -小结小结ln维数组的特点维数组的特点:l数据元素同属于一种数据类型;数据元素同属于一种数据类型;l数组一旦被定义,则维数和各维长度不能改变;数组一旦被定义,则维数和各维长度不能改变;l数组操作只有引用型操作,没有加工型操作;数组操作只有引用型操作,没有加工型操作;l数组是多维结构,但存储空间是一维结构。数组是多维结构,但存储空间是一维结构。l数组顺序表示的特点数组顺序表示的特点l存储单元地址连续(需要一段连续空间)存储单元地址连续(需要一段连续空间)l存储规则(以行(列)为主序)决定元素实际存储位置存储规则(以行(列)为主序)决定元素实际存储位置l随机存取随机存取
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 数组 广义