2021-2022-1学期 20212328 《网络空间安全专业导论》第四周学习总结

第八章:抽象数据类型与子程序
1.区分基于数组的实现和链式实现1.区分基于数组的实现和链式实现
数组的实现中,每个数据都被明确编码,方便直接按编码检索,但是由于编码的固定性,难以对数组进行更改。

链式实现:类似于“接头式”结构,像火车车厢一般,便于增添删减其中的项目,但是检索时间长。

链式实现:类似于“接头式”结构,像火车车厢一般,便于增添删减其中的项目,但是检索时间长。
链式结构(linked structure):一个将数据和找到下一项位置的信息保存到同一容器的实现方法。链式结构(linked structure):一个将数据和找到下一项位置的信息保存到同一容器的实现方法。

2.区分数组和列表2.区分数组和列表
数组:难以改变,大小相对固定,内嵌结构,高效检索
列表:易于更改,大小不定,抽象结构,为了灵活牺牲一定的效率

3.区分无序列表和有序列表3.区分无序列表和有序列表
无序列表:顺序并不重要,项目只是随意被放入其中。
有序列表:项目之间具有语义关系。

4.区分栈和队列的行为4.区分栈和队列的行为
栈:LIFO,后进先出,就像超市货架上的商品,最后被码入的一排是最先被拿到的一排。
队列:FIFO,先进先出,就像排队过安检,先去安检人先过安检。

5.区分二叉树和二叉检索树5.区分二叉树和二叉检索树
二叉树(binary tree):具有唯一起始节点的抽象复合结构,其中每个节点可以有两个子女节点,根节点和每个节点之间都有且只有一条路径。二叉树(binary tree):具有唯一起始节点的抽象复合结构,其中每个节点可以有两个子女节点,根节点和每个节点之间都有且只有一条路径。

二叉检索树具有二叉树的形状属性,此外,二叉检索树还具有语义属性来刻画树中节点上的值,即任何节点的值都要大于它左子树中的所有节点的值,并且要小于它的右子树中的所有节点的值。

6.建立二叉检索书的过程6.建立二叉检索书的过程
首先插入第一个值,再插入后续值,若后续值大于第一个值,将之放入右子树,反之放入左子树,下一个数再与第一个值开始比较重复上述操作即可。

7.理解树与图的区别7.理解树与图的区别
树是表示存在层次结构关系的一种有效方式,也就是说,一个节点至多只有一个指向它的节点。如果去掉这种越说,就得到了另一种数据结构——图。图有一组节点和连续节点的线段构成,图中的节点叫做顶点,途中的线段叫做边。

图(graph):有一组节点和一组把节点相互连接起来的便构成的数据结构。图(graph):有一组节点和一组把节点相互连接起来的便构成的数据结构。

8.,区别值参与引用参数8.,区别值参与引用参数
值参(value parameter):由调用单元传入实参的副本的形参。
引用参数(reference parameter):由调用单元传入实参的地址的形参》引用参数(reference parameter):由调用单元传入实参的地址的形参》

区别在于“引用”,即前者是传入实参的副本,而另一个是传入实参的地址(引用)。

第九章:面向对象设计与高级程序设计语言第九章:面向对象设计与高级程序设计语言
1.区分功能设计与面向对象设计1.区分功能设计与面向对象设计
功能设计:一种自顶向下的设计,重点在于完成任务,把输入转化成输出,生成任务的体系结构。
面向对象设计:用对象这种独立实体生成解决方案的问题求解方法,对象由数据和处理数据的操作构成。设计的重点是对象以及它们再问题中的交互。生成对象的体系结构。

2.描述面向对象设计过程2.描述面向对象设计过程
(1)头脑风暴:解决某个特定问题要用到的候选类的列表。
(2)过滤:回顾头脑风暴阶段确定的类,看哪些类是可以合并的以及还缺少哪些类。过滤阶段保留下来的类将再下一个阶段仔细研究。
(3)场景:给每个类分配责任。
(4)责任算法:为责任编写算法。

3.面向对象语言的三要素3.面向对象语言的三要素
封装(encapsulation):实施信息隐蔽的语言特性。
继承(inheritance):类获取其他类的属性的机制。
多态(polymorphism):语言再运行时确定给定调用将执行哪些可能的方法的能力。 (3)多态(polymorphism):语言再运行时确定给定调用将执行哪些可能的方法的能力。

4.翻译过程及汇编、编译、解释和执行的区别4.翻译过程及汇编、编译、解释和执行的区别
高级语言的翻译过程:预处理阶段——编译阶段——汇编阶段——链接阶段
汇编是将汇编语言翻译成机器码,编译是将高级语言编写的程序翻译成汇编语言或机器码,解释则不仅翻译程序中的指令,还会立即执行它们,不会输出机器语言代码。

5.命名四种不同的编程泛型,并给出每一种的语言特征5.命名四种不同的编程泛型,并给出每一种的语言特征
(1)面向过程的泛型:语句被分组为子程序,一个程序是子程序分层次构成的,每一层执行整个问题求解的一个必要的特定任务。
(2)面向对象的泛型:面向对象视角是与对象交互的一种方式。数据被认为是被动并且被程序所操控的。数据对象是活跃的。对象和操作对象的代码绑定在一起,使得每个对象负责控制自己的操作。
(3)函数式模型:基于函数的数学概念。基本原理是函数的求值,而不是变量和赋值语句。
(4)逻辑式模型:基于数理逻辑的准则。这个模型包括了面向这些对象和关系询问可以通过事实和规则推演的问题。

6.数据类型和强类型6.数据类型和强类型
数据类型(data type):一组值以及能够应用于这种类型的值的基本操作集合的说明。
强类型(Strong type):强类型指的是程序中表达的任何对象所从属的类型都必须能在编译时刻确定。强类型(Strong type):强类型指的是程序中表达的任何对象所从属的类型都必须能在编译时刻确定。

posted @ 2021-10-17 10:41  20212328陈懿凡  阅读(51)  评论(2)    收藏  举报