zoukankan      html  css  js  c++  java
  • 2019-2020-1学期 20192407 《网络空间安全专业导论》第四周学习总结”

    一.学习收获
    第八章:抽象数据类型与子程序
    通过对第八章的自学学习,我学到了:
    抽象数据类型:属性(数据和操作)明确地与特定实现分离的容器
    数据结构:一种抽象数据类型中的复合数据域的实现
    容器:存放和操作其他对象的对象
    栈:栈和队列是抽象复合结构,二者经常被同时提及。栈是一种抽象复合结构,只能从一端访问栈中的元素。可以在第一个位置插入元素,也可以删除第一个元素。 这种设计模拟了日常生活中的很多事情。会计师称它为LIFO,即后进先出(Last In First Out)的缩写。另一种描述栈的访问行为的说法是删除的项总是在栈中时间最短的项目。从这个角度观察栈就更加抽象。插入操作没有任何约束;整个LIFO行为都体现在删除操作上。
    把栈比作自助餐厅的餐具架,使它的插人和删除操作有了个惯用语,插入操作叫作Push (推进),删除操作叫作Pop (弹出)。我们把项目推进栈,从栈中弹出项目。栈没有长度属性,所以没有返回栈中项目个数的操作。我们需要的是确定栈是否为空(Is Empty)的操作,因为当栈空的时候再弹出项目会出错。
    队列:队列也是种抽象结构,队列中的项目从一端入,从另一端出。会计师称之为FIFO,即先进先出( First In First Out)的缩写。事实上,队列就是用来模拟这种情况的。插人操作在队列的rear(尾部)进行,删除操作在对列的front(头部)进行。
    另一种描述队列的访问行为的说法是删除的 总是在队列中时间最长的项目。从这个角度观察队列就更加抽象。与栈一样,插入操作没有任何约束;整个FIFO行为都体现在删除操作上。遗憾的是,插人和删除操作没有标准的相关术语。Enqueue、 Enque、 Enq、 Enter 和Insert都可以表示插人操作。Dequeue 、Deque、Deq、Delete和Remove都可以表示删除操作。
    列表:列表在程序中与在现实生活中一样很自然地出现了。列表的列是无止境的。列表有三个属性特征:项目是同构的,项目是线性的,列表是变长的。线性的意思是,每个项目除了第一个都有一个独特的组成部分在它之前,除了最后一个也都有一个独特的组成部分在它之后。例如,如果一个列表中至少有三个项目,则第二项在第一项之后,在第三项之前。
    而栈和队列对于删除操作都有全部的定义,列表通常提供插人一个项目的操作( Insert)、删除一个项目的操作(Delete)、检索一个项目是否存在(IsThere)以及报告列表中项目数量( GetLength)。此外,它们有一些机制允许用户查看序列中的每一项(Reset, GetNext, Moreltems)。 因为项目可以被删除和检索,所以列表中的项目必须能够相互比较。
    不要把列表误认为是数组,数组是内嵌结构,列表是抽象结构。然而列表应用于数组中。列表也可以被形象化为链式结构,链式结构以节点的概念为基础。一个节点由两部分构成:用户的数据和指向列表的下一个节点的链接或指针。列表的最后的一个节点的指针变量存放的是表示列表结束的符号,通常为null,用“/”表示。
    链式结构:一个将数据项和找到下一项位置的信息保存到同一容器的实现方法。
    树:分层体系结构叫作树。关于树有大量的数学理论,但在计算领域,我们所说的通常是二叉树,即每个节点最多有两个子节点的树。
    二叉树:具有唯一起始节点(根节点)的抽象复合结构,其中每个节点可以有两个子女节点,根节点和每个节点之间都有且只有一条路径。
    根:树中唯一的开始节点。
    叶节点:没有子女的树节点。
    图:由一-组节点和一-组把节点相互连接起来的边构成的数据结构。
    顶点:图中的节点。
    边(弧):表示图中两个节点的连接的顶点对。
    无向图:其中的边没有方向的图。
    有向图: 其中的边是从一个顶点指向另一个顶点(或同一个顶点)的图。
    邻顶点:通过边连接起来的两个顶点
    路径:连接图中两个顶点的一系列顶点
    创建一个表格需要的操作:
    在表格中添加一个顶点
    在表格中添加一条边
    在表格中添加一个权值
    我们在表格中通过行名和列名来寻找位置。
    深度优先搜索:走向最深的分支。在返回Dallas继续搜索前,要检查从Houston开始的所有路径。当你必须回溯时,选择离你无法走通位置的最近的分支继续搜索。也就是说,相比于更早时候可选的其他分支,你会选择一条尽可能可以走远的路。
    广度优先搜索:会优先检查所有与起点相邻的顶点,而不是检查与这些顶点相连的其他顶点。
    参数列表:程序中两部分之间的通信机制。
    形参:列在子程序名后的括号中的标识符。
    实参:子程序调用中列在括号中的标识符。调用子程序时传递的实参个数必须与子程序定义中的形参个数相同。由于实参和形参是根据位置匹配的,所以它们的名字不必一致。当需要多次调用一个子程序而每次调用的实参又不同时,这一点非常有用。以这种方式传递的形参通常称为位置形参。
    值参:由调用单元传人实参的副本(写在留言板上)的形参。
    引用参数:由调用单元传入实参的地址(写在留言板上)的形参。

    第九章:面向对象设计与高级程序设计语言
    通过对第九章的自学学习,我学到了
    面向对象方法:用叫作对象的独立实体生成解决方案的问题求解方法,对象由数据和处理数据的操作构成。面向对象设计的重点是对象以及它们在问题中的交互。一旦收集到了问题中的所有对象,它们就能构成问题的解决方案。
    对象:在问题背景中相关的事物或实体。
    对象类或类: 一组具有相似的属性和行为的对象的描述。
    域:类中的特定项,可以是数据或子程序。
    方法:定义了类的一种行为的特定算法。
    集体讨论:字典把它定义为一种集体问题求解的方法,包括集体中的每个成员的自由发言。随着计算机变得越来越强大,能够解决的问题也变得越来越复杂,这种把自己锁在没有窗户的房间中的场景已经过时了。复杂问题的求解需要集思广益,以得到具有创新性的解决方案。在面向对象的问题求解背景中,集体讨论是一种集体行为, 为的是生成解决某个特定问题要用到的候选类的列表。在进行广告标语的集体讨论之前,所有参加者都要先了解产品,同样,在对类进行集体讨论前,参加者也必须了解问题。每个进人集体讨论会议的成员都应该清楚地了解要解决的问题。毫无疑问,在准备过程中,每个成员都会草拟出自己的类列表。
    封装:把数据和动作集中在一起,使数据和动作的逻辑属性与它们的实现细节分离。
    编译器:把用高级语言编写的程序翻译成机器码的程序
    解释器:输入用高级语言编写的程序,指导计算机执行每个语句指定的动作的程序
    字节码:编译Java源代码使用的标准机器语言
    声明式范型:一个描述结果的模型,但是完成结果的过程则不被描述。在这种范型中有两种基本模型:函数式和逻辑式。
    布尔表达式:一个标识符序列,标识符之间由相容的运算符分隔,求得的值是true或false。
    强类型化:每个变量都有一个类型, 只有这种类型 的值才能存储到该变量中。
    数据类型:一组值以及能够应用于这种类型的值的基本操作集合的说明。
    字符串:字符串是一个字符序列,在某些语言中这个序列通常被看作一个数据值。
    声明:把变量、动作或语言中的其他实体与标识符关联起来的语句,使程序员可以通过名字引用这些项目。
    保留字: 一种语言中具有特殊意义的字,不能用它作为标识符。
    区分大小:大写字母和小写字母被看作是不同的;两个拼写方法相同但大小写形式不同的标识符被看作是两个不同的标识符。
    控制结构:确定程序中的其他指令的执行顺序的指令
    嵌套逻辑:
    在任何控制语句中被执行或跳过的语句可以是简单的语句或块,对于这些语句没有任何限制。
    异步: 不与计算机中的其他操作同时发生;换句话说,与计算机的动作不同步。
    封装:实施信息隐蔽的语言特性。
    对象类或类(问题求解阶段) :属性和行为相似的一组对象的说明。
    对象(问题求解阶段):与问题背景相关的事物或实体。
    对象(实现阶段):类的一个实例。
    实例化: 创建类的对象。
    继承:类获取其他类的属性(数据域和方法)的机制。
    多态:一种语言的继承体系结构中具有两个同名方法且能够根据对象应用合适的方法的能力。

  • 相关阅读:
    基于windows server 2016和sqlserver 2016 AlwaysOn的群集配置
    Mysql基于Mysql Cluster+MysqlRouter的集群部署方案
    阿里云ECS部署Redis主备哨兵集群遇到的问题
    Informix数据库配置与连接
    Linux系统中Redis和Tomcat的PID文件路径设置
    Linux端口映射,80端口映射到8080端口
    Tomcat优化配置
    Tomcat配置自定义JAVA环境
    VMware虚拟机系统无法使用桥接联网
    PostgreSQL远程访问设置
  • 原文地址:https://www.cnblogs.com/xingjiyuan/p/11768097.html
Copyright © 2011-2022 走看看