2019-2020-1学期 20202413 《网络空间安全专业导论》第四周学习总结
2019-2020-1学期 20202413 《网络空间安全专业导论》第四周学习总结
第八章:抽象数据类型与子程序
一、抽象数据类型
-
抽象数据类型:属性(数据和操作)明确地与特定实现分离的容器
-
数据结构:一种抽象数据类型中的复合数据域的实现
-
容器:存放和操作其他对象的对象
二、栈
-
栈是一种抽象复合结构,只能从一段访问栈中的元素。可以在第一个位置插入元素,也可以删除第一个元素(LIFO)
-
栈的插入操作叫Push(推进),删除操作叫Pop(弹出)
三、队列
- 队列是抽象结构,其中的项目从一端入,从另一端出(FIFO)
四、列表
列表通常提供:
-
插入一个项目的操作(Insert)
-
删除一个项目的操作(Delete)
-
检索一个项目是否存在(IsThere)
-
报告列表中项目数量(GetLength)
-
允许用户查看序列中的每一项(Reset,GetNext,MoreItems)
-
不要把列表误认为是数组。数组是内嵌结构,列表是抽象结构
-
列表可以被形象化为链式结构
五、树
1、二叉树
2、二叉检索树
- 在二叉检索树中搜素
- 构造二叉检索树
- 输出二叉检索树中的数据
3、其他操作
六、图
1、创建图
2、图算法
- 深度优先搜索
- 广度优先搜索
- 单源最短路搜索
七、子程序
1、参数传递
2、值参与引用参数
第九章:面向对象设计与高级程序设计语言
一、面向对象方法
1、面向对象
2、设计方法
-
头脑风暴
-
过滤
-
场景
-
责任算法
-
总结
3、示例
-
问题
-
头脑风暴和过滤
-
责任算法
- Person类
- Name类
二、翻译过程
1、编译器
- 编译器:把高级语言编写的程序翻译成机器码的程序
2、解释器
-
解释器:输入用高级语言编写的程序,指导计算机执行每个语句指定的动作的程序
-
第二代高级语言可以分为两种,一种是要编译的,一种是要解释的。用要解释的语言编写的程序通常比要编译的程序的运行速度慢很多
三、程序设计语言范型
1、命令式范型
-
面向过程的范型
-
面向对象的范型
2、声明式范型
-
函数式模型
-
逻辑编程
四、高级程序设计语言的功能性
1、布尔表达式
2、数据归类
(1)数据类型
-
整数
-
实数
-
字符
-
布尔型
上述四种数据类型称为简单数据类型或原子数据类型
- 字符串:一个字符序列,在某些语言中被看作一个数据值
(2)声明
- 声明:把变量、动作或语言中的其他实体与标识符关联起来的语句,使程序员可以通过名字引用这些项目
3、输入/输出结构
4、控制结构
- 伪代码提供三种算法来改变控制算法的流程:重复、选择和子程序。这些结构叫做控制结构,因为它们确定了其他指令在程序中被执行的顺序
-
嵌套逻辑
-
异步处理(事件驱动处理)
五、面向对象语言的功能性
1、封装
2、类
- 实例化:创建类的对象
3、继承
- 继承:类获取其他类的属性(数据字段和方法)的机制
4、多态
- 多态:语言在运行时确定给定调用将执行哪些可能的方法的能力
六、过程设计与面向对象设计的区别
总结
第八、九章的内容依旧十分抽象,但其重要性却不言而喻。在研读教材相关内容的过程中,我感到十分吃力,尤其是对抽象数据类型、子程序、面向对象等概念搞不清楚。为此,我曾多次上网查找相关资料和请教同学。希望在周五的课上我能有更多的收获。