读书笔记:数据结构与算法分析(Java语言描述)——数据结构概论

来源:互联网 发布:mongodb 默认端口 编辑:程序博客网 时间:2024/05/16 13:00

1.1 什么是数据结构?

逻辑结构:

物理结构(存储结构):

顺序存储结构:

非顺序存储结构:

数据类型:原子类型和结构类型

静态结构和动态结构


数据结构所要研究的内容归为以下3类:

研究数据元素之间的客观联系(逻辑结构)

研究数据在计算机中的存储方法(存储结构)

研究如何在数据的各种结构(逻辑的和物理的)上实施有效的操作或处理


1.3 基本概念和术语

数据元素:

数据项:

数据域

指针域

结点

前趋结点、后继结点


1.4 抽象数据类型和数据结构

数据类型:指一个值的集合以及在这些值上定义的一组操作的总称。

抽象数据类型(Abstract Data Type,ADT):指抽象数据组织和与之相关的操作。一个ADT的定义仅取决于他的一组逻辑特性,不涉及它的实现细节。数据结构是ADT的物理实现。

ADT可以定义为:(D, S, P) 其中,D表示数据对象,S是D上的关系集,P是对D的基本操作集。

伪代码描述为:

ADT 抽象数据类型名{

数据对象:(数据元素集合)
数据关系:(数据关系二元组结合)
基本操作:(操作函数的罗列)
}ADT 抽象数据类型名


1.6.4 类和修饰符

对类、接口及其成员进行声明时,均可带上修饰符,包括public、private、protected、abstract、package、static及final。其中public、protected、private称作存取访问修饰符;当成员声明为abstract时,表面它是不完整的,注意:field不能为abstract;一个final类是指不能有子类的类,而一个final的field表示它是一个常量;一个static的field成员是属于类本身的,而不是为该类的每个实例对象产生一个单独的备份。

Static作用于代码块:称作静态代码块(可以初始化static field,不能初始化非static field;
Static作用于methods
1.        Static方法只能访问static 方法,不能访问非static 方法
2.        Static 方法只能访问static field, 不能访问非static field
3.        非static 方法可以访问static fields 和 static methods
4.        Static method的两种访问方式oject.method class.method, 非static method只有object.method一种访问方式
5.        Static method中不支持this和super
Static 不可以作为局部变量(局部变量包括:函数级局部变量和块级局部变量)

Final修饰符:
1.        Final class该类不能被继承(不能有abstract final class)(final class内的method自动为final,但不包括field)
2.        Final method可以被继承但不能被override 不能有abstract final method
3.        Final field该属性不能被重新赋值(可以被继承,但不可以修改)
3.1        定义时可以初始化,也可以不初始化,而在语句块中初始化或者构造函数中初始化(最晚要在构造函数中初始化,只能初始化一次)
3.2        Final field只能人为赋值一次
3.3        继承与父类的final field不能被修改
3.4        Final可以修饰局部变量表示局部常量(方法级局部变量(形参及局部变量,方法体级局部变量)或块级局部变量)

Abstract修饰符:
1.        Abstract class该类不能实例化对象
2.        Abstract class该类可以不包含abstract method,但是只要有一个abstract method那么该类必须为abstract class
3.        Abstract method 该方法没有方法体,需要被override
4.        Abstract class的子类要么实现其父类全部的abstract method,要么也是一个abstract class
5.        Abstract 不能修饰 field
6.        Abstract不能修饰局部变量(方法级局部变量(形参级局部变量,方法体级局部变量)或块级局部变量)

Final、static、abstract之间的关系:
1.        Final、abstract不能共存(无论在类、方法、属性、局部变量上都不能共存)
2.        Static、abstract不能共存(无论在类、方法、属性、局部变量上都不能共存)
3.        可以出现final static field(该类成员属性不能被修改)
4.        可以出现final static method(该类成员方法不能被override)



0 0
原创粉丝点击