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

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

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

一、抽象数据类型

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

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

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

二、栈

  • 栈是一种抽象复合结构,只能从一段访问栈中的元素。可以在第一个位置插入元素,也可以删除第一个元素(LIFO)

  • 栈的插入操作叫Push(推进),删除操作叫Pop(弹出)

三、队列

  • 队列是抽象结构,其中的项目从一端入,从另一端出(FIFO)

四、列表

列表通常提供:

  1. 插入一个项目的操作(Insert)

  2. 删除一个项目的操作(Delete)

  3. 检索一个项目是否存在(IsThere)

  4. 报告列表中项目数量(GetLength)

  5. 允许用户查看序列中的每一项(Reset,GetNext,MoreItems)

  • 不要把列表误认为是数组。数组是内嵌结构,列表是抽象结构

  • 列表可以被形象化为链式结构

    五、树

    1、二叉树

2、二叉检索树

  1. 在二叉检索树中搜素

  1. 构造二叉检索树

  1. 输出二叉检索树中的数据

3、其他操作

六、图

1、创建图

2、图算法

  1. 深度优先搜索

  1. 广度优先搜索

  1. 单源最短路搜索

七、子程序

1、参数传递

2、值参与引用参数


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

一、面向对象方法

1、面向对象

2、设计方法

  1. 头脑风暴

  2. 过滤

  3. 场景

  4. 责任算法

  5. 总结

3、示例

  1. 问题

  2. 头脑风暴和过滤

  3. 责任算法

  • Person类
  • Name类

二、翻译过程

1、编译器

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

2、解释器

  • 解释器:输入用高级语言编写的程序,指导计算机执行每个语句指定的动作的程序

  • 第二代高级语言可以分为两种,一种是要编译的,一种是要解释的。用要解释的语言编写的程序通常比要编译的程序的运行速度慢很多

三、程序设计语言范型

1、命令式范型

  1. 面向过程的范型

  2. 面向对象的范型

2、声明式范型

  1. 函数式模型

  2. 逻辑编程

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

1、布尔表达式

2、数据归类

(1)数据类型
  1. 整数

  2. 实数

  3. 字符

  4. 布尔型

上述四种数据类型称为简单数据类型原子数据类型

  • 字符串:一个字符序列,在某些语言中被看作一个数据值
(2)声明
  • 声明:把变量、动作或语言中的其他实体与标识符关联起来的语句,使程序员可以通过名字引用这些项目

3、输入/输出结构

4、控制结构

  • 伪代码提供三种算法来改变控制算法的流程:重复、选择和子程序。这些结构叫做控制结构,因为它们确定了其他指令在程序中被执行的顺序

  1. 嵌套逻辑

  2. 异步处理(事件驱动处理)

五、面向对象语言的功能性

1、封装

2、类

  • 实例化:创建类的对象

3、继承

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

4、多态

  • 多态:语言在运行时确定给定调用将执行哪些可能的方法的能力

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



总结

第八、九章的内容依旧十分抽象,但其重要性却不言而喻。在研读教材相关内容的过程中,我感到十分吃力,尤其是对抽象数据类型、子程序、面向对象等概念搞不清楚。为此,我曾多次上网查找相关资料和请教同学。希望在周五的课上我能有更多的收获。

posted @ 2020-11-02 20:53  20202413马惟敏  阅读(57)  评论(0编辑  收藏  举报