数据结构:
是相互之间存在一种或多种特定关系的数据元素的集合
1.基本概念和术语
2.逻辑结构和物理结构
2.1逻辑结构
是指数据对象中数据元素之间的相互关系。
1. 集合结构
各个数据元素是平等的。
2.线性结构
线性结构的数据元素关系是一对一的。
3.树形结构
树形结构的数据元素关系是一对一的。
4.图形结构
图形结构的数据元素是多对多的关系
我们在用示意图表示数据的逻辑结构时,要注意两点:
将每一个数据元素看做一个结点,用圆圈表示。
元素之间的逻辑关系用结点之间的连线表示,如果这个关系是有方向的,那么用带箭头的连线表示。
2.2 物理结构
物理结构:是指数据的逻辑结构在计算机中的存储形式。
数据元素的存储结构形式有两种:顺序存储和链式存储。
1.顺序存储结构
顺序存储结构:是把数据元素存放在地址连续的存储单元里,其数据间的逻辑关系和物理关系是一致的。
2. 链式存储结构
链式存储结构:是把数据元素存放在任意的存储单元里,这组存储单元可以是连续的,也可以是不连续的 数据元素的存储关系并不能反映其逻辑关系,因此需要用 1个指针存放数据元素的地址,这样通过地址就可以找到相关联数据元素的位置 。
3.抽象数据类型
3.1 数据类型
数据类型:是指一组性质相同的值的集合及定义在此集合上的一些操作的总称。
3.2 Java基本数据类型
基本数据类型包括 boolean(布尔型)、float(单精度浮点型)、char(字符型)、byte(字节型)、short(短整型)、int(整型)、long(长整型)和 double (双精度浮点型)共 8 种。
类型名称 | 关键字 | 占用内存 | 取值范围 |
---|---|---|---|
字节型 | byte | 1 字节 | -128~127 |
短整型 | short | 2 字节 | -32768~32767 |
整型 | int | 4 字节 | -2147483648~2147483647 |
长整型 | long | 8 字节 | -9223372036854775808L~9223372036854775807L |
单精度浮点型 | float | 4 字节 | +/-3.4E+38F(6~7 个有效位) |
双精度浮点型 | double | 8 字节 | +/-1.8E+308 (15 个有效位) |
字符型 | char | 2 字节 | ISO 单一字符集 |
布尔型 | boolean | 1 字节 | true 或 false |
3.3 Java引用数据类型
引用数据类型建立在基本数据类型的基础上,包括数组、类和接口。引用数据类型是由用户自定义,用来限制其他数据的类型。
引用类型还有一种特殊的 null 类型。所谓引用数据类型就是对一个对象的引用,对象包括实例和数组两种。实际上,引用类型变量就是一个指针,只是 Java 语言里不再使用指针这个说法。
空类型(null type)就是 null 值的类型,这种类型没有名称。因为 null 类型没有名称,所以不可能声明一个 null 类型的变量或者转换到 null 类型。
空引用(null)是 null 类型变量唯一的值。空引用(null)可以转换为任何引用类型。
在实际开发中,程序员可以忽略 null 类型,假定 null 只是引用类型的一个特殊直接量。
注意:空引用(null)只能被转换成引用类型,不能转换成基本类型,因此不要把一个 null 值赋给基本数据类型的变量。
3.4 抽象数据类型
抽象数据类型 Abstract Dataη ADT 是指1个数学模型及定义在该模型上的一组操作。