2020-2021-1 学期 20202427《网络空间安全专业导论》第四周学习总结
2020-2021-1 学期 20202427《网络空间安全专业导论》第四周学习总结
一.抽象数据类型与子程序
1.抽象数据类型(ADT)
属性(数据和操作)明确地与特定实现分离的容器
- 数据结构:一种抽象数据类型中地复合数据域地实现
- 容器:存放和操作其他对象地对象
2.栈
一种抽象符合结构,只能从一端访问栈地元素。可以在第一个位置插入元素,也可以删除第一个元素。这种类型地处理称为LIFO,意为后进先出。另一种描述栈地访问行为的2说法是删除的项总是在栈中时间最短的项目。
3.队列
队列也是抽象结构,队列中的项目从一端入,从另一端出。这种行为称为FIFO,意思是先进先出。另一种描述队列的访问行为的说法说法是删除的总是在队列中时间最长的项目
4.列表
注:不要把列表误认为是数组,数组是内嵌结构,列表是抽象结构。列表也可以形象化为链式结构。链式结构以节点的概念为基础。一个节点由两部分构成:用户的数据和指向列表的一个节点的链接或指针。列表的最后一个节点的指针变量存放的是表示列表结束的符号,通常为null,用”/“表示。
- 链式结构:一个数据项和找到下一项位置的信息保存到同意容器的实现方法。
5.树
分类一般发生在高层,随着不断向下的移动,标签会变得更加具体。这种分层结构叫做树。
①二叉树
- 二叉树:具有唯一起始节点(根节点)的抽象符合结构,其中每个节点可以由两个子女节点,根节点和每个节点之间有且只有一条路径。
- 根:树中唯一的开始节点。
- 叶节点:没有子女的树节点
②二叉检索树
二叉检索数具有二叉树的形状属性。
- 在二叉检索树中搜索
- 构造二叉检索树
- 输出二叉检索树中的数据
③其他操作
6.图
- 图:由一组节点和一组把节点相互链接起来的边构成的数据结构
- 顶点:图中的节点
- 边(弧):表示图中两个节点的连接的顶点对。
- 无向图:其中的边没有方向的图
- 有向图:其中的边是从一个顶点只想另一个顶点(或同一个顶点)的图。
- 邻顶点:通过边连起来的两个顶点
- 路径:连接图中两个顶点的一系列顶点
①创建图
创建一个表格需要以下操作:
- 在表格中添加一个顶点
- 在表格中添加一条边
- 在表格中添加一个权值
②图算法
- 深度优先搜素
- 广度优先搜索
- 单源最短路搜索
7.子程序
①参数传递
- 参数列表:程序中两部分之间的通信机制
- 形参:列在子程序名后的括号中的标识符
- 实参:子程序调用中列在括号中标识符
②值参与引用参数
- 值参:由调用单元传入实参的副本(写在留言板上)的形参
- 引用参数:由调用单元传入实参的地址(卸载留言板上)的形参
二.面向对象设计与高级程序设计语言
1.面向对象方法
①面向对象
- 对象:在问题背景中相关的事物或实体
- 对象类或类:一组具有相似的属性和行为的对象的描述
- 字段:表示类的属性
- 方法:定义了类的一种行为的特定算法
②设计方法
- 头脑风暴
- 过滤
- 场景
- 责任算法
- 总结
封装:把数据和动作几种在一起,是数据和动作的逻辑属性与它们的实现细节分离。
2.翻译过程
①编译器
把用高级语言编写的程序翻译成机器码的程序
②解释器
输入用高级语言编写的程序,指导计算机执行每个语句指定的动作的程序
字节码:编译Java源代码使用的标准机器语言
3.程序语言设计范型
①命令式范型
1.面向过程的范型:面向过程编程是一种命令式模型,在这里语句被分组为子程序。一个程序是子程序分层次构成的,每一层
执行整个问题求解的一个必要的特定任务。
2.面向对象视角是与对象交互的一种方式。每个对象执行它自己的动作。在面向过程的范型中,数据被认为是被动并且被程序所操纵的。在面向对象的范型中,数据对象是活跃的。对象和操作对象的代码绑定在一起,使得每个对象负责控制自己的操作。
②声明式范型
- 函数式模型:基于函数的数学概念。计算通过对函数求值来实现,而问题求解通过函数调用来实现。因此基本的原理是函数的求值,而不是变量和赋值语句。
- 逻辑编程:基于数理逻辑的原则。这个模型包括了一系列关于对象的事实和一系列关于对象间关系的规则。
4.高级程序设计语言的功能性
两种伪代码结构——选择和重复(循环)是命令式语言的标志。
①布尔表达式
一个标识符序列,标识符之间由相容的运算符分隔,求得的值是true和false
②数据归类
强类型化:每个变量都有一个烈性,只有这种类型的值才能存储
数据类型:一组值以及能够应用于这种类型的值的基本操作集合的说明。
1.数据类型:整数、实数、字符、布尔型、字符串
2.声明:把变量、动作或语言中的其他实体与标识符关联起来的语句,使程序员可以通过名字引用这些项目
保留字:一种语言中具有特殊意义的字,不能用它作为标识符
区分大小写:大写字母和小写字母被看作是不同的;两个拼写方法相同但大小写形式不同的标识符被看作两个不同的标识符
③输入/输出结构
高级语言把输入的文本数据看作一个分为多行的字符流。字符的含义则由存放值的内存单元的数据类型决定。所有输入语句都由三部分组成,即要存放数据的变量的声明、输入语句和要读入的变量名以及数据流本身
输出语句创建字符流。输出语句中列出的项目可以是文字值或变量名。文字值是直接在输出语句中写的数字或字符串
④控制结构
确定程序中的其他指令的执行顺序的指令。
- 嵌套逻辑
- 异步处理:异步:不与计算机中的其他操作同时发生;换句话说,与程序的操作不同步。
5.面向对象语言的功能性
①封装
实施信息隐蔽的语言特性
对象(问题求解阶段):与问题背景相关的事物或实体
类(实现阶段):对象的模式
对象类或类(问题求解阶段):属性和行为相似的一组对象的说明
对象(实现阶段):类的一个实例
②类
实例化:创建类的对象
③继承
继承:类获取其他类的属性的机制
④多态
语言在运行时确定给定调用将执行那些可能的方法的能力
6过程设计与面向对象设计的区别
在面向过程的版本中,列表被呈现为传递给子程序的记录,以便子程序可以对其操作。操作它的数据结构和子程序时用户程序的一部分。在面向对象的版本中,类对象的实现通过封装实现对用用户的隐藏
三.总结
学习内容已经和编程相关,如果有编程语言的基础,在理解上还是会容易一点。还有许多的新名词,彻底搞懂还是很有难度,但是应该大致了解,能归类分清。