2021-2022-1学期 20212324 《网络空间安全导论》 第四周学习总结
20212324 晋博 2021/10/17
一 我所学习到的
第八章:抽象数据类型与子程序
进一步谈论抽象和抽象容器:我们不知道如何实现复合结构。同时将讨论更多关于子程序语句的内容,这也是一种代码反应设计的方式,也是算法和子算法通信的方式。
一、 抽象数据类型
抽象数据类型:属性(数据和操作)明确地与特定现实分离的容器。
为了把ADT的概念与上下文联系起来,需要看看如何观察数据。在计算机领域,可以从应用层,逻辑层,现实层这三个方面观察数据。
应用(或用户)层是特定问题中的数据的视图。
逻辑(或抽象)层是数据值(域)和处理他们的操作的抽象视图。
现实层明确表示出了存放数据项的结构,并用程序设计语言对数据的操作进行编码。这个视图用明确的数据域和子程序表示对象的属性。这一层涉及了数据结构
数据结构:一种抽象数据类型中的复合数据域的实现。
二、 区别:基于数组的实现和链式实现
- 数组的实现中,每个数据都被明确编码,方便直接按编码检索,但是由于编码的固定性,难以对数组进行更改。
- 链式实现:类似于“接头式”结构,像火车车厢一般,便于增添删减其中的项目,但是检索时间长。
链式结构(linked structure):一个将数据和找到下一项位置的信息保存到同一容器的实现方法。
三、 数组和列表
集合包含列表包含数组
数组:难以改变,大小相对固定,内嵌结构,高效检索
列表:易于更改,大小不定,抽象结构,为了灵活牺牲一定的效率
四、 无序列表和有序列表
无序列表:顺序并不重要,项目只是随意被放入其中。
有序列表:项目之间具有语义关系。
五、栈和队列的行为
栈:LIFO,后进先出,就像超市货架上的商品,最后被码入的一排是最先被拿到的一排。
队列:FIFO,先进先出,就像排队过安检,先去安检人先过安检。
六、 区别:二叉树和二叉检索树
二叉树(binary tree):具有唯一起始节点的抽象复合结构,其中每个节点可以有两个子女节点,根节点和每个节点之间都有且只有一条路径。
二叉检索树具有二叉树的形状属性,此外,二叉检索树还具有语义属性来刻画树中节点上的值,即任何节点的值都要大于它左子树中的所有节点的值,并且要小于它的右子树中的所有节点的值。
七、 建立二叉检索书的过程
首先插入第一个值,再插入后续值,若后续值大于第一个值,将之放入右子树,反之放入左子树,下一个数再与第一个值开始比较重复上述操作即可。
八、 树与图
树是表示存在层次结构关系的一种有效方式,也就是说,一个节点至多只有一个指向它的节点。如果去掉这种越说,就得到了另一种数据结构——图。图有一组节点和连续节点的线段构成,图中的节点叫做顶点,途中的线段叫做边。
图(graph):有一组节点和一组把节点相互连接起来的便构成的数据结构。
九、 值参与引用参数
值参(value parameter):由调用单元传入实参的副本的形参。
引用参数(reference parameter):由调用单元传入实参的地址的形参》
区别在于“引用”,即前者是传入实参的副本,而另一个是传入实参的地址(引用)。
第九章:面向对象设计与高级程序设计语言
面向对象的设计是审视设计过程的另一种方式它从数据角度出发而非任务。
一、区别功能设计与面向对象设计
功能设计:一种自顶向下的设计,重点在于完成任务,把输入转化成输出,生成任务的体系结构。
面向对象设计:用对象这种独立实体生成解决方案的问题求解方法,对象由数据和处理数据的操作构成。设计的重点是对象以及它们再问题中的交互。生成对象的体系结构。
二、 描述面向对象设计过程
- 头脑风暴:解决某个特定问题要用到的候选类的列表。
- 过滤:回顾头脑风暴阶段确定的类,看哪些类是可以合并的以及还缺少哪些类。过滤阶段保留下来的类将再下一个阶段仔细研究。
- 场景:给每个类分配责任。
- 责任算法:为责任编写算法。
三、 面向对象语言的三要素
封装(encapsulation):实施信息隐蔽的语言特性。
继承(inheritance):类获取其他类的属性的机制。
多态(polymorphism):语言再运行时确定给定调用将执行哪些可能的方法的能力。
四、 翻译过程及汇编、编译、解释和执行的区别
高级语言的翻译过程:预处理阶段——编译阶段——汇编阶段——链接阶段
汇编是将汇编语言翻译成机器码,编译是将高级语言编写的程序翻译成汇编语言或机器码,解释则不仅翻译程序中的指令,还会立即执行它们,不会输出机器语言代码。
五、 命名四种不同的编程泛型,并给出每一种的语言特征
(1)面向过程的泛型:语句被分组为子程序,一个程序是子程序分层次构成的,每一层执行整个问题求解的一个必要的特定任务。
(2)数据对象是活跃的。对象和操作对象的代码绑定在一起,使得每个对象负责控制自己的操作。
(3)函数式模型:基于函数的数学概念。基本原理是函数的求值,而不是变量和赋值语句。
(4)逻辑式模型:基于数理逻辑的准则。这个模型包括了面向这些对象和关系询问可以通过事实和规则推演的问题。
六、 数据类型和强类型
- 数据类型(data type):一组值以及能够应用于这种类型的值的基本操作集合的说明。
- 强类型(Strong type):强类型指的是程序中表达的任何对象所从属的类型都必须能在编译时刻确定。强类型(Strong type):强类型指的是程序中表达的任何对象所从属的类型都必须能在编译时刻确定。
二、遇到的困难及解决
第八章,第九章的部分概念难以理解,对接下来的阅读可能有极大的影响。如数组和列表的关系区别。在学习过程中,我查找了一些资料,将其弄清楚。

浙公网安备 33010602011771号