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

《第四周学习总结》

- 第八章 抽象程序类型与子程序

  • 抽象数据类型(Abstract DataType):属性(数据和操作)明确地与特定实现分离的容器。在计算领域,可以从应用层、逻辑层、实现层三个方面观察数据。应用层涉及数据结构(data structure),即一种抽象数据类型中的复合数据域的实现。同时,容器(container)即为存放和操作其它对象的对象。
  • 栈,站和队列都是数据结构,但他们行为完全不同,栈作为一种抽象符合结构,处理类型称为LIFO,意思是后进先出(Last In First Out)).另一种栈的访问行为说法是删除的项总是在栈中时间最短的项目。
  • 队列也是一种抽象结构,队列中的项目从一段进,从另一端出,这种行为称为FIFO。
  • 列表有三个属性特征:

1、项目是同构的;
2、项目是线性的;
3、项目是变长的。

列表也可以被形象为链式结构(linked structure)),即一个将数据项和找到下一个位置项的信息保存到同一容器的实现方法。无序列表的顺序并不重要,项目只是被随意放入其中。有序列表中,项目之间具有语义关系。


  • 类似于列表、栈、和队列这样的抽象结构本质上都是线性的,这种分层体系结构叫作树,在计算领域,我们通常说的是二叉树。
    • 二叉树(binary tree))是一种抽象结构,其中每个节点可以有两个后继结点,叫做子女(children)),树的头部是一个起始节点,叫做根(root)),如果一个节点没有子女,则这个节点叫作树叶(leaf)。
      除了根节点外,每个节点只有一个父母节点。
    • 二叉检索树

      具有树的形状属性。
      • 在二叉检索树中搜索
      • 制造二叉检索树,用字符串john\Phil\Lila\kate\becca\judy\mari
        jim\sue构造一个二叉检索树
      • 输出二叉检索树中的数据
        运用递归算法,编号两个递归调用
        该算法按升序输出了二叉检索树中的项目。
      • 其他操作,例如计算书中的节点数。将使用Length的概念。

  • 如果去掉一个节点至多只有一个指向它的节点这种约束,那么就得到了另一种数据结构,即图(graph)),图由一组节点和一组把节点连接起来的边构成的数据结构。图中的顶点表示对象,边则描述了顶点的关系。
    图的边无向的图称为无边图(undirected graph))
    其中的边是由一个顶点指向另一个顶点的图叫做有向图(directed graph))
    图的实例
    • 创建图
      创建表格需要:

1、在表格中添加一个顶点
2、在表格中添加一条边
3、在表格中添加一个权值

我们在表格中通过行名和列名来寻找位置。

  • 图算法:

1、深度优先探索;
2、广度优先探索;
3、单源最短路探索。

  • 子程序
    许多子程序都是高级语言或语言附带库中的一部分。
    • 参数传递
      参数列表(parameter list)是子程序中要使用的标识符或值的列表,列在子程序名括号中的后的标识符被称为形参(parameter));子程序调用中列在括号中的标识符被称为实参(argument))*。
    • 值参(value parameter))与引用参数(reference parameter))*
      传递参数的方式有两种,即通过值传递和通过引用(或地址)传递。

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

  • 面向对象方法即用叫做对象的独立实体生成解决方案的问题求解方法。
  • 面向对象
    每个对象负责自己的处理(行为)。面对对象设计(OOD)的底层概念时类(class)和对象(object)。
    对象(object):在问题背景中相关的事物或实体;
    对象类(object class)或类(class):一组具有相似的属性和行为的对象的描述;
    字段(field)):表示类的属性;
    方法(method):定义了类的一种行为的特定算法。
    • 设计方法:

1、头脑风暴
2、过滤
3、场景
4、责任算法
5、总结
示例

  • 翻译过程:把汇编语言指令翻译成机器码,需要采用其他软件工具协助翻译:1、编译器(complier):把高级语言编写的程序翻译成机器码的程序。
    2、解释器(interpreter):输入用高级语言编写的程序,知道计算机执行每个语句指定的动作的程序。其中Java被编译成一种标准机器语言——字节码(bytecode)。
  • 程序设计语言范型,范型即paradigm,包括命令式范型,声明式范型。
  • 高级程序设计语言的功能性
    • 布尔表达式,如:
      一个布尔变量
      一个算术表达式加一个运算关系符再加一个算术表达式
      一个布尔表达式加一个布尔运算符,再加一个布尔表达式。
      • 数据归类,只能在变量中存储数据的要求叫做强类型化。
      • 输入/输出结构
      • 控制结构
  • 面向对象语言的功能性
    • 封装
posted @ 2021-10-17 21:24  sainahes  阅读(71)  评论(3)    收藏  举报