本次预习了第八章与第九章的内容,我们将学习抽象容器和面向对象程序设计及相关联的拓展内容。收获整理如下:
第八章一、抽象数据类型
这一章介绍的抽象数据类型是在现实世界的问题中反复出现过的。这些ADT是存储数据项的容器,每种ADT都具有特定的行为。称它们为容器是因为它们存在的唯一目的就是存放其他对象。
相关概念:
数据抽象类型(ADT):属性(数据与操作)明确地与特定实现分离的容器
数据结构:一种抽象数据类型中的复合数据域的实现
容器:存放和操作其他对象的对象
二、栈
一种抽象符合结构,只能从一端访问栈中的元素。可以在第一个位置插入元素,也可以删除第一个元素。这种处理方法叫做LIFO,意思是后进先出。另一种描述栈的访问行为的说法是删除的项总是在栈中时间最短的项目。
三、队列
队列也是抽象结构,队列中的项目从一端入,从另一端出。这种行为称为FIFO,意思是先进先出。另一种描述队列的访问行为的说法说法是删除的总是在队列中时间最长的项目。
四、列表
列表有三个属性特征:列表是同构的,列表是线性的,列表是变长的。线性的意思是,每个项目除了第一个都有一个独特的组成部分在它之前,除了最后一个也都有一个独特的组成部分在它之后。
注意:不要把列表误认为是数组,数组是内嵌结构,列表是抽象结构。
链式结构:一个数据项和找到下一项位置的信息保存到同意容器的实现方法。
五、树
概念:
二叉树:具有唯一起始节点(根节点)的抽象符合结构,其中每个节点可以由两个子女节点,根节点和每个节点之间有且只有一条路径。
子女:每个节点的后继节点。
根:树中唯一的开始节点。
叶节点:没有子女的树节点。
二叉检索树
二叉检索数具有二叉树的形状属性。
1、在二叉检索树中搜索
2、构造二叉检索树
3、输出二叉检索树中的数据
六、图
概念:
图:由一组节点和一组把节点相互链接起来的边构成的数据结构
顶点:图中的节点
边(弧):表示图中两个节点的连接的顶点对。
无向图:其中的边没有方向的图
有向图:其中的边是从一个顶点只想另一个顶点(或同一个顶点)的图。
邻顶点:通过边连起来的两个顶点
路径:连接图中两个顶点的一系列顶点
①创建图
创建一个表格需要以下操作:
在表格中添加一条边
在表格中添加一个权值
②图算法
深度优先搜素
广度优先搜索
单源最短路搜索
七、子程序
参数传递
概念:
参数列表:程序中两部分之间的通信机制
形参:列在子程序名后的括号中的标识符
实参:子程序调用中列在括号中标识符
值参与引用参数
概念:
值参:由调用单元传入实参的副本(写在留言板上)的形参
引用参数:由调用单元传入实参的地址(卸载留言板上)的形参
一、面向对象方法
概念:
对象:在问题背景中相关的事物或实体
对象类或类:一组具有相似的属性和行为的对象的描述
字段:表示类的属性
方法:定义了类的一种行为的特定算法
封装:把数据和动作集中在一起,是数据和动作的逻辑属性与它们的实现细节分离。
设计方法:
头脑风暴
过滤
场景
责任算法
总结
二、翻译过程
编译器:
把用高级语言编写的程序翻译成机器码的程序
解释器:
输入用高级语言编写的程序,指导计算机执行每个语句指定的动作的程序
字节码:
编译Java源代码使用的标准机器语言
三、程序语言设计范型
分类:
命令式范型
面向过程的范型、面向对象的范型
声明式范型
函数式模型:基于函数的数学概念。计算通过对函数求值来实现,而问题求解通过函数调用来实现。因此基本的原理是函数的求值,而不是变量和赋值语句。
逻辑编程:基于数理逻辑的原则。这个模型包括了一系列关于对象的事实和一系列关于对象间关系的规则。
四、高级程序设计语言的功能性
概念:
布尔表达式:一个标识符序列,标识符之间由相容的运算符分隔,求得的值是true和false
数据归类
强类型化:每个变量都有一个烈性,只有这种类型的值才能存储
数据类型:一组值以及能够应用于这种类型的值的基本操作集合的说明。
1.数据类型:整数、实数、字符、布尔型、字符串
2.声明:把变量、动作或语言中的其他实体与标识符关联起来的语句,使程序员可以通过名字引用这些项目
保留字:一种语言中具有特殊意义的字,不能用它作为标识符
区分大小写:大写字母和小写字母被看作是不同的;两个拼写方法相同但大小写形式不同的标识符被看作两个不同的标识符
五、面向对象语言的功能性
封装:
封装:实施信息隐蔽的语言特性
对象(问题求解阶段):与问题背景相关的事物或实体
类(实现阶段):对象的模式
对象类或类(问题求解阶段):属性和行为相似的一组对象的说明
对象(实现阶段):类的一个实例
类:
实例化:创建类的对象
继承:
继承:类获取其他类的属性(数据字段和方法)的机制
多态:
语言在运行时确定给定调用将执行那些可能的方法的能力