基本的数据结构计算机数据结构与算法_计算机-数据结构与算法.pdf

上传人:C****o 文档编号:95639222 上传时间:2023-08-29 格式:PDF 页数:50 大小:2.11MB
返回 下载 相关 举报
基本的数据结构计算机数据结构与算法_计算机-数据结构与算法.pdf_第1页
第1页 / 共50页
基本的数据结构计算机数据结构与算法_计算机-数据结构与算法.pdf_第2页
第2页 / 共50页
点击查看更多>>
资源描述

《基本的数据结构计算机数据结构与算法_计算机-数据结构与算法.pdf》由会员分享,可在线阅读,更多相关《基本的数据结构计算机数据结构与算法_计算机-数据结构与算法.pdf(50页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、基本的数据结构 1.2基本的数据结构(8课时机上8课时)目录 第一课时.4 教学目标.4 1.2.1.1 什么是数据结构.4 1.2.1.2 基本的数据结构及其优缺点.6 121.3 关于数据结构的一些概念 .8 第二课时.11 教学目标.11 1.2.2.1 引言.11 1.2.2.2 一维数组的创建.12 1.2.2.3 一维数组的初始化.13 1.2.2.4 维数组数据项的访问 .14 第三-四课时.15 教学目标.15 1.2.3-.4.1 引言.15 1.2.3-4.2 多维数组声明.17 1.2.3-4.3 多维数组初始化.17 1.2.3-4.4 引用多维数组元素 .20 123

2、-4.5 锯齿数组.22 第五课时.23 教学目标.23 125.1 枚举类型.23 1.2.5.2 枚举类型的定义.24 125.3枚举的使用.25 1.2.5.4枚举具有的核心功能.25 第六-七课时.29 教学目标.29 126-7.1引用型数据类型 .29 1.2.6-7.2 引用类型的赋值.31 1.2.6-7.3按值传递和还是按引用传递.32 关于数据结构的一些概念第二课时教学目标引言一维数组的创建一维数组的初始化维数组数据项的访问第三四课时教学目标引言多维数组声明多维数组初始化引用多维数组元素锯齿数组第五课时教学目标枚举类型枚举类型的定义枚八课时教学目标类对象成员变量成员方法基本

3、的数据结构课时第一课时教学目标数据结构的概念基本的数据结构及其优缺点和数据结构相关的几个定义数据库字段关键字什么是数据结构数据结构是对在计算机内存中有时在磁盘中的用于以下三类情况现实世界数据存储程序员的工具建模现实世界数据存储现实世界数据值得是哪些描述处于计算机外部的物理实体的数据看几个例子一条人事档案记录描述了一位真实人的记录一条存货记录描述了一个真实存在的汽第八课时.41 教学目标.41 1.2.8.1 类.41 1.2.8.2 对象.42 1.2.8.3成员变量.44 1.2.8.4成员方法.47 1.2基本的数据结构(8课时)第一课时 教学目标 数据结构的概念,基本的数据结构及其优缺

4、点,和数据结构相关的几个定义(数据库,字段,关键字)。1.2.1.1 什么是数据结构 数据结构是对在计算机内存中(有时在磁盘 中)的数据的一种安排。数据结构包括数组,表,栈,二叉树,哈希表等。数据结构可以解决哪些 方面的问题呢?粗略的估计一下,可以用于以下 三类情况:关于数据结构的一些概念第二课时教学目标引言一维数组的创建一维数组的初始化维数组数据项的访问第三四课时教学目标引言多维数组声明多维数组初始化引用多维数组元素锯齿数组第五课时教学目标枚举类型枚举类型的定义枚八课时教学目标类对象成员变量成员方法基本的数据结构课时第一课时教学目标数据结构的概念基本的数据结构及其优缺点和数据结构相关的几个定

5、义数据库字段关键字什么是数据结构数据结构是对在计算机内存中有时在磁盘中的用于以下三类情况现实世界数据存储程序员的工具建模现实世界数据存储现实世界数据值得是哪些描述处于计算机外部的物理实体的数据看几个例子一条人事档案记录描述了一位真实人的记录一条存货记录描述了一个真实存在的汽现实世界数据存储 程序员的工具 建模 现实世界数据存储现实世界数据值得 是哪些描述处于计算机外部的物理实体的数据。看几个例子:一条人事档案记录描述了一位真实 人的记录,一条存货记录描述了一个真实存在的 汽车部件或杂货店里的一种商品,一条财务交易 记录描述了一笔支付电费实际填写的支票。举一个非计算机的现实世界数据存储的例 子,

6、有一叠3x5的索引卡片,这些卡片可以被用 在不同的场合。如果每张卡片上写有某人的姓 名,地址和电话号码,那么折叠卡片一定是一本 地址簿。如果每一张卡片上写有家庭拥有物的名 称,位置和价值,那么这一定是一本家庭财产清 单。当然索引卡片并不能代表现在的科技发展 水平。几乎索引以前用索引卡片处理的事务现在 都可以用计算机来处理。如果想将旧式的所以卡 片系统更新为计算机程序,边有可能会发现会被 如下问题所困扰:关于数据结构的一些概念第二课时教学目标引言一维数组的创建一维数组的初始化维数组数据项的访问第三四课时教学目标引言多维数组声明多维数组初始化引用多维数组元素锯齿数组第五课时教学目标枚举类型枚举类型

7、的定义枚八课时教学目标类对象成员变量成员方法基本的数据结构课时第一课时教学目标数据结构的概念基本的数据结构及其优缺点和数据结构相关的几个定义数据库字段关键字什么是数据结构数据结构是对在计算机内存中有时在磁盘中的用于以下三类情况现实世界数据存储程序员的工具建模现实世界数据存储现实世界数据值得是哪些描述处于计算机外部的物理实体的数据看几个例子一条人事档案记录描述了一位真实人的记录一条存货记录描述了一个真实存在的汽如何在计算机内存中安放数据?所用方法适用于100张卡片吗?那1000 张呢?10000000张呢?所用方法能够快速的插入新卡片和删除老 卡片吗?它能快速的查找一张特定的卡片吗?若想将卡片按

8、照字母顺序排列,又应该如 何去排呢?然而,大多数程序比所以卡片要复杂得多。想象一下机动车管理部门的数据库,这个库被用 来记录驾驶员的执照的情况;或者看一个航班预 定系统,这个系统存储了旅客和航班的各种信 息。这些系统由许多数据结构组成。程序员的工具并不是所有的数据结构 都用来存储现实世界的数据。通常情况下,现实 世界的数据或多或少会由程序的用户直接存取。但是有些数据存储结构并不打算让用户接触,它 们仅被程序本身所使用。程序员经常将诸如栈,队列和优先级队列等结构当作结构来简化另一 些操作,这些数据结构就是程序员的工具了。现实世界的建模有些数据结构能直接 对现实世界的情况构造建模。其中最重要的数据

9、 结构是关于数据结构的一些概念第二课时教学目标引言一维数组的创建一维数组的初始化维数组数据项的访问第三四课时教学目标引言多维数组声明多维数组初始化引用多维数组元素锯齿数组第五课时教学目标枚举类型枚举类型的定义枚八课时教学目标类对象成员变量成员方法基本的数据结构课时第一课时教学目标数据结构的概念基本的数据结构及其优缺点和数据结构相关的几个定义数据库字段关键字什么是数据结构数据结构是对在计算机内存中有时在磁盘中的用于以下三类情况现实世界数据存储程序员的工具建模现实世界数据存储现实世界数据值得是哪些描述处于计算机外部的物理实体的数据看几个例子一条人事档案记录描述了一位真实人的记录一条存货记录描述了一

10、个真实存在的汽图。图可以用来表示城市之间的航线。电 路中的连接线和连接点,或者是某一工程中的任 务安排关系。其它诸如栈和队列等数据结构也会 应用在时间的建模中。例如,一个队列可以模拟 顾客在银行中排队等待的模型,还可以模拟汽车 在收费站前面等待缴费的模型等等。1.2.1.2 基本的数据结构及其优缺点 知道了数据结构的概念及基本用途,那么到底 关于数据结构的一些概念第二课时教学目标引言一维数组的创建一维数组的初始化维数组数据项的访问第三四课时教学目标引言多维数组声明多维数组初始化引用多维数组元素锯齿数组第五课时教学目标枚举类型枚举类型的定义枚八课时教学目标类对象成员变量成员方法基本的数据结构课时

11、第一课时教学目标数据结构的概念基本的数据结构及其优缺点和数据结构相关的几个定义数据库字段关键字什么是数据结构数据结构是对在计算机内存中有时在磁盘中的用于以下三类情况现实世界数据存储程序员的工具建模现实世界数据存储现实世界数据值得是哪些描述处于计算机外部的物理实体的数据看几个例子一条人事档案记录描述了一位真实人的记录一条存货记录描述了一个真实存在的汽有哪些数据结构,以及它们各自的优点和缺点有 哪些呢接下来我们用下面的表格来对基本的数 据结构以及其优缺点进行详细说明:数据结构 优点 缺点 数组 插入块,如果 知道下标,可 以非常快的存 取 查找慢,删除 慢,大小固定 有序数组 比无序的数组 查找快

12、 删除和插入 慢,大小固定 栈 提供后进先出 方式的存取 存取其它项很 慢 队列 提供先进先出 方式的存取 存取其它项很 慢 链表 插入快,删除 快 查找慢 二叉树 查找,插入,删除都快(如 果数保持平 衡)删除的算法比 较复杂 红-黑树 查找,插入,删除都快,树 算法复杂 关于数据结构的一些概念第二课时教学目标引言一维数组的创建一维数组的初始化维数组数据项的访问第三四课时教学目标引言多维数组声明多维数组初始化引用多维数组元素锯齿数组第五课时教学目标枚举类型枚举类型的定义枚八课时教学目标类对象成员变量成员方法基本的数据结构课时第一课时教学目标数据结构的概念基本的数据结构及其优缺点和数据结构相关

13、的几个定义数据库字段关键字什么是数据结构数据结构是对在计算机内存中有时在磁盘中的用于以下三类情况现实世界数据存储程序员的工具建模现实世界数据存储现实世界数据值得是哪些描述处于计算机外部的物理实体的数据看几个例子一条人事档案记录描述了一位真实人的记录一条存货记录描述了一个真实存在的汽 总是平衡的 2-3-4 树 查找,插入,删除都快。书 总是平衡的,类似的树对磁 盘存储有用 算法复杂 哈希表 如果关键字已 知则存取极 快,插入快 删除慢,如果 不知道关键字 很慢,对存储 空间使用不充 分 堆 插入,删除快,对最大数据项 的存储很快 对其它数据项 存取慢 图 对现实世界建 模 有些算法慢且 复杂

14、知道了这些基本的数据结构及其优缺点,那么 我们再平平时的编程中选择正确的数据结构将 会大大提高程序的运行效率。121.3关于数据结构的一些概念 数据库(database)-我们将会使用数据 库这个关于数据结构的一些概念第二课时教学目标引言一维数组的创建一维数组的初始化维数组数据项的访问第三四课时教学目标引言多维数组声明多维数组初始化引用多维数组元素锯齿数组第五课时教学目标枚举类型枚举类型的定义枚八课时教学目标类对象成员变量成员方法基本的数据结构课时第一课时教学目标数据结构的概念基本的数据结构及其优缺点和数据结构相关的几个定义数据库字段关键字什么是数据结构数据结构是对在计算机内存中有时在磁盘中的

15、用于以下三类情况现实世界数据存储程序员的工具建模现实世界数据存储现实世界数据值得是哪些描述处于计算机外部的物理实体的数据看几个例子一条人事档案记录描述了一位真实人的记录一条存货记录描述了一个真实存在的汽术语来表示在某一特定情况下所有要查 阅的数据,数据库中的每一条数据都被认为是同 样格式的,这种存储数据的统一格式就是我们前 面所说的数据结构。例如:如果使用索引卡片来 做一本地址簿,其中所有的卡片便构成了一个数 据库,没一张卡片就是一条数据,而卡片本身就 是数据结构。记录(record)记录是指数据库中划分 成的单元。它们为存储信息提供了一个结构格 式。在索引卡片的模拟系统中,每一张卡片就代 表

16、一条记录。当有许多类似的实体时,一条记录 包含了某一个实体的所有信息。一条记录可能应 对与人事档案中的某一个人,汽车供应存货目录 中的某一个零部件,或是烹调书中的某一道菜 谱。字段(field)一条记录经常被划分为几 个字段。一个字段保存某一种特定的数据。在地 址簿中的一张索引卡片上,一个人的名字,地址 或电话号码都是一个独立的字段。更复杂的数据 库程序使用带有更多字段的记录。如下图显示了 一条记录,其中每一行代表了一个不同的字段。雇员号码:社会保险号码:姓:名:关于数据结构的一些概念第二课时教学目标引言一维数组的创建一维数组的初始化维数组数据项的访问第三四课时教学目标引言多维数组声明多维数组

17、初始化引用多维数组元素锯齿数组第五课时教学目标枚举类型枚举类型的定义枚八课时教学目标类对象成员变量成员方法基本的数据结构课时第一课时教学目标数据结构的概念基本的数据结构及其优缺点和数据结构相关的几个定义数据库字段关键字什么是数据结构数据结构是对在计算机内存中有时在磁盘中的用于以下三类情况现实世界数据存储程序员的工具建模现实世界数据存储现实世界数据值得是哪些描述处于计算机外部的物理实体的数据看几个例子一条人事档案记录描述了一位真实人的记录一条存货记录描述了一个真实存在的汽地址:城市:邮编:电话:生日 开始工作时间:工资:在java语言(和其它面向对象语言)中,记录经常被表示为一个相应类的对象。一

18、个实例 中各个变量表示不同的数据字段(data field)。关键字一一在数据库中查找一条记录,需要 指定记录的某一个字段位关键字(或查找关键 字)。通过这个特定的关键字来进行查找。例如,在一个地址簿的程序中,可以再每条记录的姓名 字段中查找关键字“Brown”当找到具有该关键 字的记录时,便可以访问它的所有字段,而不仅 仅是关键字了,可以说是关键字释放了整个记 录。还可以通过电话号码字段或地址字段在整个 文件中再次查找。上图中任何字段都可以被用作 查找关键字。第二课时 教学目标 关于数据结构的一些概念第二课时教学目标引言一维数组的创建一维数组的初始化维数组数据项的访问第三四课时教学目标引言多

19、维数组声明多维数组初始化引用多维数组元素锯齿数组第五课时教学目标枚举类型枚举类型的定义枚八课时教学目标类对象成员变量成员方法基本的数据结构课时第一课时教学目标数据结构的概念基本的数据结构及其优缺点和数据结构相关的几个定义数据库字段关键字什么是数据结构数据结构是对在计算机内存中有时在磁盘中的用于以下三类情况现实世界数据存储程序员的工具建模现实世界数据存储现实世界数据值得是哪些描述处于计算机外部的物理实体的数据看几个例子一条人事档案记录描述了一位真实人的记录一条存货记录描述了一个真实存在的汽一维数组的概念,一维数组的创建,一维数 组的初始化,一维数组数据项的访问。1.2.2.1 引言 数组(arr

20、ay)是相同类型变量的集合,可 以使用共同的名字引用它。它是应用最广泛的数 据结构,被植入到大部分变成语言中。由于数组 十分易懂,所以它被用来作为介绍数据结构的起 步点,并展示面向对象变成和数据结构之间的关 系。数组可以被定义为任何类型,可以是一维的 也可以是多维的。数组中的一个特别要素是通过 下标来访问他。数组提供了一种将有联系的信息 分组的便利方法。下面我们来详细介绍一维数 组。关于数据结构的一些概念第二课时教学目标引言一维数组的创建一维数组的初始化维数组数据项的访问第三四课时教学目标引言多维数组声明多维数组初始化引用多维数组元素锯齿数组第五课时教学目标枚举类型枚举类型的定义枚八课时教学目

21、标类对象成员变量成员方法基本的数据结构课时第一课时教学目标数据结构的概念基本的数据结构及其优缺点和数据结构相关的几个定义数据库字段关键字什么是数据结构数据结构是对在计算机内存中有时在磁盘中的用于以下三类情况现实世界数据存储程序员的工具建模现实世界数据存储现实世界数据值得是哪些描述处于计算机外部的物理实体的数据看几个例子一条人事档案记录描述了一位真实人的记录一条存货记录描述了一个真实存在的汽1.2.2.2 一维数组的创建 一维数组(one-dimensional array)实质上 市相同类型变量列表。正如第一章所提到的,java 中有两种数据 类型:基本类型(如 int,double 等)和引

22、用类 型在许多编程语言中(甚至有些面向对象语言,如C+,数组也是基本类型,但在java中把它 当作对象类型来对待,因此在创建数组时必须使 用 new 操作符。要创建一个数组,你必须首先定义数组变量 所需的类型。通用的一维数组的声明格式是:Type var-name;获得一个数组需要两步。第一步,你必须定 义变量所需的类型。第二步,你必须使用运算符 new来为数组所要存储的数据分配内存,并把它 们分配给数组变量。这样 java 中的数组被动态 地分配。如下所示:Int intArray;/声明一个数组变量 intArray=new int100/给数组变量 分配内存空间 或者使用等价的但语句声明

23、方法:Int intArray=new int100;12/52关于数据结构的一些概念第二课时教学目标引言一维数组的创建一维数组的初始化维数组数据项的访问第三四课时教学目标引言多维数组声明多维数组初始化引用多维数组元素锯齿数组第五课时教学目标枚举类型枚举类型的定义枚八课时教学目标类对象成员变量成员方法基本的数据结构课时第一课时教学目标数据结构的概念基本的数据结构及其优缺点和数据结构相关的几个定义数据库字段关键字什么是数据结构数据结构是对在计算机内存中有时在磁盘中的用于以下三类情况现实世界数据存储程序员的工具建模现实世界数据存储现实世界数据值得是哪些描述处于计算机外部的物理实体的数据看几个例子一

24、条人事档案记录描述了一位真实人的记录一条存货记录描述了一个真实存在的汽 操作符对于编译器来说是一个标志,它说 明正在命名的是数组对象而不是普通的变量。当 然还可以通过另一种语法来使用这个操作符,将 它放在变量名的后面而不是类型的后面:Int intArray=new int100;但是将 放在 int 后面会清楚的说明 是 数据类型的一部分,而不是变量名的一部分。由于数组是一个对象,所以它的名字(前面 程序中的 intArray)是数组的一个引用:它并 不是数组本身。数组存储在内存中的其它地址 中,而 intArray 仅仅保存着这个地址。数组有一个 length 字段,通过它可以得知 当前数

25、组大小(数据项的个数);Int arraylength=intArray.length;/取得数组长度 数组一旦被创建,其大小不可改变。1.2.2.3 一维数组的初始化 当创建整型数组后,如果不另行指定,那么 整型数组会自动初始化成空。与 C+不同的是,即使通过方法(函数)来定义数组也是这样的。常见一个对象数组如下:关于数据结构的一些概念第二课时教学目标引言一维数组的创建一维数组的初始化维数组数据项的访问第三四课时教学目标引言多维数组声明多维数组初始化引用多维数组元素锯齿数组第五课时教学目标枚举类型枚举类型的定义枚八课时教学目标类对象成员变量成员方法基本的数据结构课时第一课时教学目标数据结构的

26、概念基本的数据结构及其优缺点和数据结构相关的几个定义数据库字段关键字什么是数据结构数据结构是对在计算机内存中有时在磁盘中的用于以下三类情况现实世界数据存储程序员的工具建模现实世界数据存储现实世界数据值得是哪些描述处于计算机外部的物理实体的数据看几个例子一条人事档案记录描述了一位真实人的记录一条存货记录描述了一个真实存在的汽autoData varArray=new autoData4000;除非将特定的值赋给数组数据项,否则它们 一直是特殊的 null 对象。如果尝试访问一个含 有 null 的数组数据项,程序会出项 Null Pointer Assignment(空指针赋值)的运行错误。这主

27、要 是为了保证在读取某个数据项之前要先对其赋 值。使用下面的语法可以对一个基本类型的数 组初始化,赋入非空值:int intArray=0,3,6,9,12,15,18,21,24,27;上面的语句可能简单的令人惊讶,它同时取 代了引用声明和使用new来创建数组。在大括号 中的数据被称为数据列表。数组大小由列表中数 据项的个数决定。1.2.2.4 一维数组数据项的访问 数组数据项通过使用方括号中的下标数来 访问。这与其它语言类似:Temp=intArray3;/数据项的数组 intArray7=66;/给第八个数组元素 赋值为 66 定义一个有四个 关于数据结构的一些概念第二课时教学目标引言一

28、维数组的创建一维数组的初始化维数组数据项的访问第三四课时教学目标引言多维数组声明多维数组初始化引用多维数组元素锯齿数组第五课时教学目标枚举类型枚举类型的定义枚八课时教学目标类对象成员变量成员方法基本的数据结构课时第一课时教学目标数据结构的概念基本的数据结构及其优缺点和数据结构相关的几个定义数据库字段关键字什么是数据结构数据结构是对在计算机内存中有时在磁盘中的用于以下三类情况现实世界数据存储程序员的工具建模现实世界数据存储现实世界数据值得是哪些描述处于计算机外部的物理实体的数据看几个例子一条人事档案记录描述了一位真实人的记录一条存货记录描述了一个真实存在的汽请注意无论是C,C+,还是java中,

29、第一 个数据项的下标都是 0,所以,一个有 10 个数 据项的数组小标是 0 至 9.如果访问小于 0 或者比数组大小大的数据 项,程序会出现 Array Index Out Of Bounds(数 组小标越界)的运行错误。第三-四课时 教学目标 多维数组概念,多维数组的声明,多维数组 的初始化,多维数组长度的取得,锯齿数组的简 单介绍。1.2.3-4.1 引言 在学校里,由于一个班的人数不多,所以按 照顺序编号即可,当人数增多时,例如对于学校 里的人,在编号时就要增加层次,例如 XX班XX 号。在部队中也是这样,XX师XX团XX营XX连 XX排XX班,这里的层次就比较深了。为了管理 数据的方

30、便,一般要加深管理的层次,这就是多 维数组关于数据结构的一些概念第二课时教学目标引言一维数组的创建一维数组的初始化维数组数据项的访问第三四课时教学目标引言多维数组声明多维数组初始化引用多维数组元素锯齿数组第五课时教学目标枚举类型枚举类型的定义枚八课时教学目标类对象成员变量成员方法基本的数据结构课时第一课时教学目标数据结构的概念基本的数据结构及其优缺点和数据结构相关的几个定义数据库字段关键字什么是数据结构数据结构是对在计算机内存中有时在磁盘中的用于以下三类情况现实世界数据存储程序员的工具建模现实世界数据存储现实世界数据值得是哪些描述处于计算机外部的物理实体的数据看几个例子一条人事档案记录描述了一

31、位真实人的记录一条存货记录描述了一个真实存在的汽的由来。多维数组,指二维以及二维以上的数组。二 维数组有两个层次,三维数组有三个层次,依次 类推。每个层次对应一个下标。在实际使用中,为了使结构清晰,一般对于 复杂的数据都是用多维数组。关于多维数组的理 解,最终的是理解数组的数组这个概念,因为数 组本身就是一种复合数据类型,所以数组也可以 作为数组元素存在。这样二维数组就可以理解成 内部每个元素都是一维数组类型的一个一维数 组。三维数组可以理解成一个一维数组,内部的 每个元素都是二维数组。无论在逻辑上还是语法 上都支持“数组的数组”这种理解方式。通常情况下,一般用二维数组的第一维代表 行,第二维

32、代表列,这种逻辑结构和现实中的结 构一致。和一维数组类似,因为多维数组有多个 下标,那么引用数组中的元素时,需要指定多个 下标。下面以二维数组为例,来介绍多维数组的 语法。1.2.3-4.2 多维数组声明 多维数组的声明如下:数据类型 数组名称;数据类型 数组名称;数据类型 数组名称;关于数据结构的一些概念第二课时教学目标引言一维数组的创建一维数组的初始化维数组数据项的访问第三四课时教学目标引言多维数组声明多维数组初始化引用多维数组元素锯齿数组第五课时教学目标枚举类型枚举类型的定义枚八课时教学目标类对象成员变量成员方法基本的数据结构课时第一课时教学目标数据结构的概念基本的数据结构及其优缺点和数

33、据结构相关的几个定义数据库字段关键字什么是数据结构数据结构是对在计算机内存中有时在磁盘中的用于以下三类情况现实世界数据存储程序员的工具建模现实世界数据存储现实世界数据值得是哪些描述处于计算机外部的物理实体的数据看几个例子一条人事档案记录描述了一位真实人的记录一条存货记录描述了一个真实存在的汽以上三种语法在声明二维数组时的功能是 等价的。同理,声明三维数组时需要三对中括号,中括号的位置可以在数据类型的后面,也可以在 数组名称的后面,其它的依次类推。例如:int map;char c;和一维数组一样,数组声明以后在内存中没 有分配具体的存储空间,也没有设定数组的长 度。1.2.3-4.3 多维数组

34、初始化 和一维数组一样,多维数组的初始化也可以 分为静态初始化(整体赋值)和动态初始化两种,其语法格式如下。静态初始化以二维数组的静态初始化 为例,来说明多维数组静态初始化的语法格式。示例代码如下:int m=1,2,3,2,3,4;在二维数组静态初始化时,也必须和数组的 声关于数据结构的一些概念第二课时教学目标引言一维数组的创建一维数组的初始化维数组数据项的访问第三四课时教学目标引言多维数组声明多维数组初始化引用多维数组元素锯齿数组第五课时教学目标枚举类型枚举类型的定义枚八课时教学目标类对象成员变量成员方法基本的数据结构课时第一课时教学目标数据结构的概念基本的数据结构及其优缺点和数据结构相关

35、的几个定义数据库字段关键字什么是数据结构数据结构是对在计算机内存中有时在磁盘中的用于以下三类情况现实世界数据存储程序员的工具建模现实世界数据存储现实世界数据值得是哪些描述处于计算机外部的物理实体的数据看几个例子一条人事档案记录描述了一位真实人的记录一条存货记录描述了一个真实存在的汽明写在一起。数值书写时,使用两个大括号嵌 套实现,在最里层的大括号内部书写数字的值。数值和数值之间使用逗号分隔,内部的大括号之 间也使用逗号分隔。由该语法可以看出,内部的大括号其实就是 一个一维数组的静态初始化,二维数组只是把多 个一维数组的静态初始化组合起来。同理,三维数组的静态初始化语法格式如 下:int b=1

36、,2,3,1,2,3,3,4,1,2,3,4 ;说明:这里只是演示语法格式,数值本身没 有意义。动态初始化二维数组动态初始化的语 法格式:数据类型 数组名称=new 数据类型 第一 关于数据结构的一些概念第二课时教学目标引言一维数组的创建一维数组的初始化维数组数据项的访问第三四课时教学目标引言多维数组声明多维数组初始化引用多维数组元素锯齿数组第五课时教学目标枚举类型枚举类型的定义枚八课时教学目标类对象成员变量成员方法基本的数据结构课时第一课时教学目标数据结构的概念基本的数据结构及其优缺点和数据结构相关的几个定义数据库字段关键字什么是数据结构数据结构是对在计算机内存中有时在磁盘中的用于以下三类情

37、况现实世界数据存储程序员的工具建模现实世界数据存储现实世界数据值得是哪些描述处于计算机外部的物理实体的数据看几个例子一条人事档案记录描述了一位真实人的记录一条存货记录描述了一个真实存在的汽维的长度 第二维的长度;数据类型 数组名称;数组名称=new 数据类型 第一维的长度 第 二维的长度;示例代码:byte b=new byte23;int m;m=new int44;和一维数组一样,动态初始化可以和数组的 声明分开,动态初始化只指定数组的长度,数组 中每个元素的初始化是数组声明时数据类型的 默认值。例如上面初始化了长度为2X3的数组b,和4X4的数组m 使用这种方法,初始化出的第二维的长度都

38、是相 同的,如果需要初始化第二维长度不一样的二维 数组,则可以使用如下的格式:int n;n=new int2;/只初始化第一维的长度/分别初始化后续的元素 n0=new int4;n1=new int3;这里的语法就体现了数组的数组概念,在初 始化第一维的长度时,其实就是把数组 n 看成了 一个一维数组,初始化其长度为 2,则数组 n 中 包含的 2 个元素分别是 n0 和 n1,而这两个 元素分别是一个一维数组。后面使用一维数组动 态初始化的关于数据结构的一些概念第二课时教学目标引言一维数组的创建一维数组的初始化维数组数据项的访问第三四课时教学目标引言多维数组声明多维数组初始化引用多维数组

39、元素锯齿数组第五课时教学目标枚举类型枚举类型的定义枚八课时教学目标类对象成员变量成员方法基本的数据结构课时第一课时教学目标数据结构的概念基本的数据结构及其优缺点和数据结构相关的几个定义数据库字段关键字什么是数据结构数据结构是对在计算机内存中有时在磁盘中的用于以下三类情况现实世界数据存储程序员的工具建模现实世界数据存储现实世界数据值得是哪些描述处于计算机外部的物理实体的数据看几个例子一条人事档案记录描述了一位真实人的记录一条存货记录描述了一个真实存在的汽语法分别初始化 n0 和 n1。1.2.3-4.4 引用多维数组元素 对于二维数组来说,由于其有两个下标,所 以引用数组元素值的格式为:数组名称

40、第一维下标 第二维下标 该表达式的类型和声明数组时的数据类型 相同。例如引用二维数组 m 中的元素时,使用 m00 引用数组中第一维下标是 0,第二维下 标也是 0 的元素。这里第一维下标的区间是 0到 第一维的长度减 1,第二维下标的区间是 0 到第 二维的长度减 1。四、获得多维数组长度 对于多维数组来说,也可以获得数组的长 度。但是使用数组名.length 获得的是数组第一 维的长度。如果需要获得二维数组中总的元素个 数,可以使用如下代码:int m=1,2,3,1,1,3,3,4,2;int sum=0;for(int i=0;i m.length;i+)/循环 第一维下标 sum+=

41、mi.length;/第二维的长度相加 关于数据结构的一些概念第二课时教学目标引言一维数组的创建一维数组的初始化维数组数据项的访问第三四课时教学目标引言多维数组声明多维数组初始化引用多维数组元素锯齿数组第五课时教学目标枚举类型枚举类型的定义枚八课时教学目标类对象成员变量成员方法基本的数据结构课时第一课时教学目标数据结构的概念基本的数据结构及其优缺点和数据结构相关的几个定义数据库字段关键字什么是数据结构数据结构是对在计算机内存中有时在磁盘中的用于以下三类情况现实世界数据存储程序员的工具建模现实世界数据存储现实世界数据值得是哪些描述处于计算机外部的物理实体的数据看几个例子一条人事档案记录描述了一位

42、真实人的记录一条存货记录描述了一个真实存在的汽在该代码中,m.length 代表 m 数组第一维 的长度,内部的 mi 指每个一维数组元素,mi.length 是 mi 数组的长度,把这些长度相 加就是数组m中总的元素个数 1.2.3-4.5 锯齿数组 下面我们要介绍一种比较特殊的二维数组,可能大家也已经注意到了,在前面我们所举的例 子中就有这么一种数组,它的第二维的长度是不 一样的,我们把这种第二维长度不同的二维数组 叫做锯齿数组。锯齿数组直接初始化锯齿数据直接初 始化的格式形如下面:int a 1,2,3,4,5,6,7,8,9,0,1,2;锯齿数组的动态初始化如下:int a;a=new

43、 int4;a0=new int2;a1=new int6;a2=new int1;a3=new int3;第五课时 关于数据结构的一些概念第二课时教学目标引言一维数组的创建一维数组的初始化维数组数据项的访问第三四课时教学目标引言多维数组声明多维数组初始化引用多维数组元素锯齿数组第五课时教学目标枚举类型枚举类型的定义枚八课时教学目标类对象成员变量成员方法基本的数据结构课时第一课时教学目标数据结构的概念基本的数据结构及其优缺点和数据结构相关的几个定义数据库字段关键字什么是数据结构数据结构是对在计算机内存中有时在磁盘中的用于以下三类情况现实世界数据存储程序员的工具建模现实世界数据存储现实世界数据值

44、得是哪些描述处于计算机外部的物理实体的数据看几个例子一条人事档案记录描述了一位真实人的记录一条存货记录描述了一个真实存在的汽教学目标 枚举类型的概念,枚举类型的使用,枚举类 型的特点。1.2.5.1 枚举类型 我们已经知道,Java 代码的两个基本的 构造块是类和接口。现在又引入了枚举,一般简 称它为enum。那么什么是枚举呢,枚举其实就 是一种类型,跟 int,char 这种差不多,就是 定义变量时限制输入的,你只能够赋 enum里面 规定的值。这个新类型允许您表示特定的数据 点,这些数据点只接受分配时预先定义的值集 合。当然,熟练的程序员可以使用静态常量实现 这项功能,就是我们常说的 pu

45、blic static final 代码。如下所示:Public class OldGrade public static final int A=1;public static final int B=2;public static final int C=3;public static final int D=4;public static final int F=5;关于数据结构的一些概念第二课时教学目标引言一维数组的创建一维数组的初始化维数组数据项的访问第三四课时教学目标引言多维数组声明多维数组初始化引用多维数组元素锯齿数组第五课时教学目标枚举类型枚举类型的定义枚八课时教学目标类对象成

46、员变量成员方法基本的数据结构课时第一课时教学目标数据结构的概念基本的数据结构及其优缺点和数据结构相关的几个定义数据库字段关键字什么是数据结构数据结构是对在计算机内存中有时在磁盘中的用于以下三类情况现实世界数据存储程序员的工具建模现实世界数据存储现实世界数据值得是哪些描述处于计算机外部的物理实体的数据看几个例子一条人事档案记录描述了一位真实人的记录一条存货记录描述了一个真实存在的汽public static final int INCOMPLETE=6;但是在这样做的时候,请记住这类常量是 Java 中 int 类型的常量,这意味着该方法可以 接受任何 int 类型的值,即使它和 OldGrad

47、e 中 定的所有级别都不对应。因此,您需要检测上界 和下界,在出现无效值的时候,可能还要包含一 个 IllegalArgumentException。而且,如果后 来又添加另外一个级别(例如 OldGrade.WITHDREW_PASS)(那么必须改变所 有代码中的上界,才能够接受现在的这个值。换 句话说,在使用这类带有整型常量的类时,该解 决方案也许可行,但并不是非常有效。幸运的是,枚举提供了更好的方法。1.2.5.2 枚举类 型的定 义 枚举类型在定义时要使用一个关键字 enum,为 enum 提供了一个名称,并指定了允许的值。形如下面的例子:Public enum Grade A,B,C

48、,D,F,INCOMPLETE;1.2.5.3 枚举的使用 关于数据结构的一些概念第二课时教学目标引言一维数组的创建一维数组的初始化维数组数据项的访问第三四课时教学目标引言多维数组声明多维数组初始化引用多维数组元素锯齿数组第五课时教学目标枚举类型枚举类型的定义枚八课时教学目标类对象成员变量成员方法基本的数据结构课时第一课时教学目标数据结构的概念基本的数据结构及其优缺点和数据结构相关的几个定义数据库字段关键字什么是数据结构数据结构是对在计算机内存中有时在磁盘中的用于以下三类情况现实世界数据存储程序员的工具建模现实世界数据存储现实世界数据值得是哪些描述处于计算机外部的物理实体的数据看几个例子一条人

49、事档案记录描述了一位真实人的记录一条存货记录描述了一个真实存在的汽枚举类型最经常的用法,是使用枚举类型,在各个枚举值之间切换做各种分歧处理,及常用 的 switch 语句。把枚举的各个值,作为 switch 语句的各个 case 来进行所需要的处理。当然必 须切记的是这时候的 switch 语句中一定要在处 理完所有的 case 后在加上 default 处理块,以 免枚举类型被程序员修改后,我们在不知情的情 况下,对这种新的枚举值漏处理,而且还发现不 了错误。1.2.5.4 枚举 具有的核心功能 类型安全:枚举的申明创建了一个新的类型。它不同于 其他的已有类型,包括原始类型(整数,浮点数 等

50、等)和当前作用域(Scope)内的其它的枚举 类型。当你对函数的参数进行赋值操作的时候,整数类型和枚举类型是不能互换的(除非是你进 行显式的类型转换),编译器将强制这一点。比 如说,用下面申明的枚举定义这样一个函数:枚举定义:enum Day SUNDAY,MONDAY,TUESDAY,WEDNESDAY,THURSDAY,FRIDAY,SATURDAY;函数定义:Public void fun(Day);如果你用整数作为参数来调用这个函数,那 关于数据结构的一些概念第二课时教学目标引言一维数组的创建一维数组的初始化维数组数据项的访问第三四课时教学目标引言多维数组声明多维数组初始化引用多维数组

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > PPT文档

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com