数据结构 Java语言版 王学军 第五章新.pptVIP

  • 10
  • 0
  • 约1.86万字
  • 约 74页
  • 2018-01-01 发布于广东
  • 举报

数据结构 Java语言版 王学军 第五章新.ppt

数据结构(Java语言版) 人民邮电出版社 【知识要点】 数组的基本概念; 一维数组和二维数组; 特殊矩阵及其压缩存储结构; 稀疏矩阵及其压缩存储结构; 广义表的概念; 广义表的存储结构。 5.1 实例引入 【学习任务】通过实例引入,了解数组的特点以及结构构成 【例5.1】某单位运动会座位安排示意图 5.2 数组 【学习任务】准确把握数组的概念及相关概念,熟练掌握一维数组中数据元素地址的计算方法,理解二维数组中数据元素地址的计算方法,了解相关应用。 5.2.1数组的基本概念 1.数组的定义 数组(Array)是一组具有相同数据类型的数据集合。数组中的每个数据称为数据元素。数据元素按次序存储于一段地址连续的内存空间中。即数组是数据元素的线性组合,类似于顺序存储结构的线性表。 2.数组的相关概念 (1)下标 数据元素在数组中的位置编号称为数组的下标,在Java语言中,数组的下标是从0开始的,第1个数据元素的下标为0,第2个数据元素的下标为1,……。可以通过下标找到存放该元素的存储地址,访问该数据元素的值。数组中的每一个元素和下标惟一对应。 5.2.1数组的基本概念 在Java中,数据元素可以是简单数据类型,也可以是引用类型。在Java中,声明数组变量时不需要指定数组的长度,只有使用new运算符为数组分配空间后,数组才真正占用一段连续地址的存储单元。而当数组使用完之后,Java的垃圾回收机制将自动销毁不再使用的对象,收回对象所占的资源。 (2)维数 数组下标的个数就是数组的维数,有一个下标就是一维数组;有两个下标就是二维数组;有三个以上的下标,就统称为多维数组。 第三阶段 5.2.1数组的基本概念 在Java中java.util.Arrays类中,包含用来操作数组(比如排序和搜索)的各种方法。java.util.Vector可以实现变长的对象数组。与数组一样,它包含可以使用整数索引进行访问的组件。但是,Vector 的大小可以根据实际需要增大或缩小数组的长度,以适应创建Vector后进行添加或删除等操作。 5.2.2 一维数组 数组是n(n≥1)个相同类型数据元素a0,a1,…,ai,…,an-1组成的有限序列,存储在一个连续的内存单元中。在一维数组中的每个数据元素都对应于一个下标i,每个下标的取值范围是0≤in。其中,n表示数组的长度。 在一维数组中,当系统为一个数组分配连续的内存单元时,该数组的存储地址即数组的首地址LOC(a0)就确定了。并假设每个数据元素占用了L个存储单元,则任意一个数据元素的存储地址LOC(ai)就可由如下公式计算得出: LOC(ai) = LOC (a0) +i×L (0≤i≤n-1) 5.2.2 一维数组 该式说明,一维数组中的数据元素的存储地址可以直接计算得到,即一维数组中的任意一个数据元素可直接存取(即随机存储结构)。可以通过如下形式访问数组中任意指定的数据元素: 数组名[下标] 5.2.3 二维数组 二维数组是线性表的推广。二维数组可以看作“其数据元素为一维数组”的线性表。以此类推,多维数组可以看作一个线性表,这个线性表中的每一个数据元素也是一个线性表。 1.二维数组的概念 对于一个m行n列的二维数组,有 5.2.3 二维数组 将简记为A,A是这样的一维数组: A=(a0,a1,…, ap) (p=m-1或p=n-1) 其中每个数据元素ai是一个行向量形式的线性表,即 ai=(ai0,ai1,…,ai,n-1)(0≤i≤m-1) 或者每个数据元素aj是一个列向量形式的线性表,即 aj=(a0j,a1j,…,am-1,j) (0≤j≤n-1) 5.2.3 二维数组 2.二维数组的存储结构 对于二维数组,如何使用线性存储结构存放二维数组的数据元素呢? 对于二维数组,使用一段连续的存储单元存放数据元素的方式有两种: 一种是以行为主序的顺序存储,即首先存储第1行的数据元素,然后存储第2行的数据元素,……最后存储第m行的数据元素。此时,二维数组的线性排列次序为: a00,a01,…,a0,n-1 ,a10,a11,…,a1,n-1,…,am-1,0,am-1,1,…,am-1,n-1 其存储形式如图5.3 (a)所示。 5.2.3 二维数组 另一种是以列为主序的顺序存储。二维数组的线性排列次序为: a00,a10,…,a m-1,0 ,a01,a11,…,am-1,1,…,a0,n-1,a1,n-1,…,am-1,n-1 其存储形式如图5.3 (b)所示。 5.2.3 二维数组 5.2.3 二维数组 数据元素的存储位置是由其下标决定的。二维数组的第1个数据元素的a00存储地址LOC(a00),每个数据元素占L个存储单元,则按行为主序存储数组时,该二维数组中任意

文档评论(0)

1亿VIP精品文档

相关文档