2019-2020-1学期 20192425《网络空间安全专业导论》第四周学习总结”

第8章 抽象数据类型与子程序

8.1抽象数据类型

抽象数据类型(ADT):属性(数据和操作)明确地与特定实现分离的容器。

数据结构:一种抽象数据类型中的复合数据域的实现。

容器:存放和操作其他对象的对象.

8.2栈

栈是一种抽象复合结构,只能从一端访问栈中的元素。另一种描述栈的访问行为的说法是删除的项总是在栈中时间最短的项目。

8.3队列

队列也是种抽象结构,队列中的项目从一端入,从另一端出。另一种描述队列的访问行为的说法是删除的总是在队列中时间最长的项目。

8.4列表

链式结构:一个将数据项和找到下一项位置的信息保存到同一容器的实现方法。

8.5树

8.5.1二叉树

  • 二叉树:具有唯一起始节点(根节点)的抽象复合结构,其中每个节点可以有两个子女节点,根节点和每个节点之间都有且只有一条路径。
  • 根:树中唯一的开始节点。
  • 叶节点:没有子女的树节点。

8.5.2二叉检索树

  1. 在二叉检索树中搜索
  2. 构造二叉检索树
  3. 输出二叉检索树中的数据

8.5.3其他操作

8.6图

  • 图:由一组节点和一组把节点相互连接起来的边构成的数据结构。
  • 顶点:图中的节点。
  • 边(弧):表示图中两个节点的连接的顶点对。

  • 无向图:其中的边没有方向的图。

  • 有向图:其中的边从一个顶点指向另一个顶点(或同一个顶点)的图。

  • 临顶点:通过边连接起来的两个顶点。

  • 路径:连接图中两个顶点的一系列顶点。

8.6.1创建图

列表、栈、队列和树都是可容纳元素的容器。

许多信息可以被呈现在图上:顶点、边和权值。

8.6.2图算法

  • 深度优先搜索
  • 广度优先搜索
  • 单源最短路搜索

8.7子程序

许多子程序都是高级语言或语言附带库的一部分。如果其中一个子程序需要传递信息,调用单元将会把值发送给子程序来使用。

8.7.1参数传递

  • 参数列表:程序中两部分之间的通信机制。
  • 形参:列在子程序名后的括号中的标识符。
  • 实参:子程序调用中列在括号中的标识符。

8.7.2值参与引用参数

  • 值参:由调用单元传入实参的副本(写在留言板上)的形参。
  • 引用参数:由调用单元传入实参的地址(写在留言板上)的形参。

小结:

  • 列表、栈、队列、树和图都是有用的抽象复合结构。
  • 列表和树有着同样的属性:元素可以被插入、删除和检索。
  • 列表、栈、队列和树都仅仅是容器结构,但是图则更加复杂。
  • 子程序声明使得子算法可以独立实现。

第9章 面向对象设计与高级程序设计语言

9.1面向对象方法

9.1.1面向对象

  • 对象:在问题背景中相关的事物或实体。
  • 对象类或类:一组具有相似的属性和行为的对象的描述。
  • 域:类中的特定项,可以是数据或子程序。
  • 方法:定义了类的一种行为的特定算法。

9.1.2设计方法

  • 集体讨论
  • 过滤
  • 场景 封装:把数据和动作集中在一起,使数据和动作的逻辑属性与它们的实现细节分离。
  • 责任算法

9.1.3一个计算机实例

  • 问题
  • 集体讨论和过滤
  • 责任算法

9.2翻译过程

9.2.1编译器

编译器:把用高级语言编写的程序翻译成机器码的程序

9.2.2解释器

  • 解释器:输入用高级语言编写的程序,指导计算机执行每个语句指定的动作的程序。
  • 字节码:翻译java源代码使用的标准机器语言。

9.3程序设计语言的范型

9.3.1命令示范型

  • 面向过程的范型
  • 面向对象的范型

9.3.2声明式范型

  • 函数式模型
  • 逻辑编程

9.4高级程序设计语言的功能性

9.4.1布尔表达式

布尔表达式:一个标识符序列,标识符之间由相容的运算符分隔,求得的值使true或false。

9.4.2数据归类

强类型化:每个变量都有一个类型,只有这种类型的值才能存储到该变量中。

数据类型:一组值以及能够应用于这种类型的值的基本操作集合的说明。

数据类型:

  • 整数
  • 实数
  • 字符
  • 布尔型
  • 字符串

声明:

  • 声明:把变量、动作或语言中的其他实体与标识符关联起来的语句,使程序员可以通过名字引用这些项目。
  • 保留字:一种语言中具有特殊意义的字,不能用它作为标识符。
  • 区分大小写:大写字母和小写字母被看作是不同的;两个拼写方法相同但大小写形式不同的标识符被看作是两个不同的标识符。

9.4.3输入/输出结构

9.4.4控制结构

控制结构:确定程序中的其他指令的执行顺序的指令。

  • 嵌套逻辑
  • 异步处理 异步:不与计算机中的其他操作同时发生;换句话说,与计算机的动作不同步。

9.5面向对象语言的功能性

9.5.1封装

  • 封装:实施信息隐蔽的语言特性。
  • 对象类或类(问题求解阶段):属性和行为相似的一组对象的说明。
  • 对象(问题求解阶段):与问题背景相关的事物或实体。
  • 对象(实现阶段):类的一个实例。
  • 类(实现阶段):对象的模式。

9.5.2类

实例化:创建类的对象。

9.5.3继承

继承:类获取其他类的属性(数据域和方法)的机制。

9.5.4多态

多态:一种语言的继承体系机构中具有两个同名方法且能够根据对象应用合适的方法的能力。

9.6过程设计与面向对象设计的区别


小结:

  • 面向对象设计的重点是确定问题中的对象,并根据对象的属性和行为把它们抽象(分组)成类。
  • 汇编器可以把汇编语言程序翻译成机器码。
  • 存在多种高级程序设计语言的模型,被分类为命令式(面向过程和面向对象)或者声明式(功能或逻辑)。
  • 布尔表达式是关于程序状态的断言。
  • 程序中的每个变量都有自己的数据类型。
posted @ 2019-10-30 17:52  20192425  阅读(95)  评论(1编辑  收藏  举报