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


    问题:
    1、如何区分单个的字符和只有一个字符的字符串?
    2、对象是如何关联到彼此的?
    3、怎么让形参与实参匹配?
    4、算法不太懂

    第八章、抽象数据类型与子程序
    1、抽象数据类型(ADT):属性(数据和操作)明确地与特定实现分离的容器。{应用(或用户层)是特定问题中的数据的视图。逻辑或抽象层是数据值域和处理他们的操作的抽象视图,实现层明确表示出了存放数据项的结构,并对操作码进行操作。每种ADT都具有特定的行为,称它们为容器是因为它们存在的唯一目的就是存放其他对象}
    2、容器:存放和操作其他对象的对象
    3、栈与队列
    (栈):是一种抽象复合结构,只能从一端访问栈中的元素,可以在第一个位置插入元素,也可以删除第一个元素。我们取走的第一个元素正是最后放入其中的那个元素。
    (栈的另一种描述方法):删除的项总是在栈中时间最短的项目,插入操作没有任何约束,整个LIFO行为都体现在删除操作上。栈是使元素以相反的顺序输出。
    (队列):队列中的项目从一端入,从另一端出。FIFO,先进先出,与栈不同。插入操作在尾部进行,删除操作在队列的头部进行。
    (队列的另一种说法):删除的总是在队列中时间最长的项目
    4、列表:三个属性:项目是同构的,项目是线性的,列表是变长的。所谓线性则指的就是每个项目除了第一个都有一个独特的组成部分在它之前,除了最后一个也都有一个独特的组成部分在它之后。列表可被形象化为链式结构
    (栈、队列、列表的不同):栈和队列对删除操作有全部的定义,列表通常提供插入一个项目的操作,删除一个项目的操作,检索一个项目是否存在以及报告列表中项目数量。所以列表中的项目必须要能够相互比较。列表不是数组,但他们三者本质上都是线性的,只模拟了一种数据关系
    5、链式结构:一个将数据项和找到下一项位置的信息保存到同一容器的实现方法。
    6、树:分层体系结构,通常说二叉树,即最多有两个子节点的树。一个节点至多只有一个指向它的节点
    7、二叉树:二叉树是一种抽象结构,每个节点可以有0、1、2个后继节点,叫做子女。树的头部是一个起始节点,叫做根,他不是任何节点的子女,存放在节点左边的叫左子女,存放在右边的叫做右子女。如果一个节点没有子女,这个节点叫做树叶,称为叶节点
    除了根节点外,每个节点只有一个父母节点,根节点还是树中其他所有节点的先辈。
    8、二叉检索树:树类似于一个无序列表,搜索的依据可以记为:任何节点的值都要大于它的左子树中所有节点的值,都要小于它的右子树中所有节点的值。所以当你想要搜索一个在树中存在的数的话,先从源头找起,先看看和根相比,这个数字是大是小,大在右边,小在左边,然后继续与左子树或者右子树进行比较,直到找到所想要的数字。如果这个数字并不存在于其中,比较方式也很类似,仍然按照上面的方法但是会得出矛盾的结论。这样就可以证明这个数字是不存在于二叉树中的。
    9、二叉检索树的搜索效率:其效率与树的形状有直接关系。树的形状是由项目插入树的顺序决定的。
    10、如何构造二叉检索树?
    插入节点的整体流程:

    把父节点设置为当前节点,即根节点。
    如果新节点内的数据值小于当前节点内的数据值,那么把当前节点设置为当前节点的左子节点。如果新节点内的数据值大于当前节点内的数据值,那么就跳到步骤 4。

    如果当前节点的左子节点的数值为空(null),就把新节点插入在这里并且退出循环。否则,跳到 while 循环的下一次循环操作中。

    把当前节点设置为当前节点的右子节点。
    如果当前节点的右子节点的数值为空(null),就把新节点插入在这里并且退出循环。否则,跳到 while 循环的下一次循环操作中。
    11、如何输出二叉搜索树中的数字?
    按算法升序输出了二叉检索树中的项目
    12、图
    图由一组节点和一组把节点相互连接起来的边构成的数据结构
    顶点:图中的节点
    边:表示图中两个节点的连接的顶点对
    13、图的分类:无向图:其中的边没有方向的图
    有向图:其中的边是从一个顶点指向另一个顶点(或同一个顶点)的图
    加权图:有附加值的图
    邻顶点:通过边连接起来的两个顶点
    路径:连接图中两个顶点的一系列顶点
    14、如何创建图:(1)、在表格中添加一个顶点
    (2)、在表格中添加一条边
    (3)、在表格中添加一个权值
    15、图算法
    深度优先搜索、广度优先搜索、单源最短路搜索
    深度优先搜索:检查第一个与起点相邻的顶点,如果是他就结束,如果不是他就检查所有与第一个顶点相邻的顶点
    广度优先搜索:按照先后顺序进行搜索。让对头走,把与这个走了的人相邻的压进来
    单源最短路搜索:这个计算比较复杂,加到最小即可
    16、子程序:算法和子算法之间的计算
    17、参数传递
    参数列表:程序中两部分之间的通信机制
    形参:列在子程序名后的括号中的标识符
    实参:子程序调用中列在括号中的标识符
    值参:由调用单元传入实参的副本
    引用参数:由调用单元传入实参的地址的形参
    第九章、面向对象设计与高级程序设计语言
    1、对象:在问题背景中相关的事物或实体
    2、对象类:一组具有相似的属性和行为的对象的描述
    2、域:类中的特定项,可以是数据或子程序
    4、方法:定义了累的一种行为的特定算法
    5、设计方法
    设计方法包括集体讨论:为的是生成解决某个特定问题要用到的候选类的列表。
    过滤:仅用于启动模拟程序,这些共同的属性和行为可以组合在一起。
    场景:给每个类分配责任
    封装:把数据和动作集中在一起,使数据和动作的逻辑属性与它们的实现细节分离
    责任算法:知识和动作
    责任的加入过程:创建、输出和加入。加入这个动词是让某人准备数据的指令
    6、翻译过程:用汇编语言编写的程序要输入汇编器,由他把汇编语言翻译成机器码,最终执行的是汇编器输出的机器码,使用高级语言。
    编译器:把用高级语言编写的程序翻译成机器码的程序
    解释器:输入用高级语言编写的程序,指导计算机执行每个语句指定的动作的程序
    字节码:编译Java源代码使用的标准机器语言,标准化的高级语言实现的可移植性与把JAVA程序翻译成字节码然后在解释它的可移植性是不同的。用高级语言编写的程序能够在任何具有适合的编译器的机器上编译和运行,程序将被翻译成计算机能够直接执行的机器码,Ada编译器就是把其语言翻译成字节码。
    7、程序设计语言的范形
    两种主要的范形:分别是命令和声明的
    命令式范形:具有顺序执行指令的特征,变量的使用代表了内存地址,而使用赋值语句则改变这些变量的值
    面向过程的范形和面向对象的范形,,面向过程的范形指的是语句被分为子程序,然后每一层执行整个问题求解的一个必要的特定任务。面向对象的范形:数据对象是活跃的,对象和操作对象的代码绑定在一起,使得每个对象负责控制自己的操作
    声明式范形:是一个描述结果的模型,但是完成结果的过程不被描述。有两种基本模型,分别是函数式和逻辑式
    函数式模型:计算通过对函数求值来实现,而问题求解通过函数调用来实现。因此基本的原理是函数的求值,而不是变量和赋值语句
    逻辑编程:逻辑编程基于象征逻辑的原则,这个模型包括了一系列关于对象的事实和一系列关于对象间关系的规则。一个程序包括了向这些对象和关系询问可以通过事实和规则推演的问题。
    布尔表达式:一个标识符序列,标识符之间由相容的运算符分割,求得的值是TRUE或false.
    关系运算符是比较两个值的运算符。小于,小于等于,大于大于等于,不等于,等于
    强类型化:每个变量都有一个类型,只有这种类型的值才能存储到该变量中
    数据类型:一组值以及能够应用于这种类型的值得基本操作集合的说明
    大多数高级语言都有四种数据类型
    整数、实数、字符和布尔型
    整数实数字符和布尔型称为简单数据类型或原子数据类型,因为每个值都是独立的,不能再分割
    字符串:是一个字符序列
    声明:把变量、动作、或者语言中的其他实体与标识符关联起来的语句,使程序员可以通过名字引用这些项目
    保留字:一种语言中具有特殊意义的字,不能用它作为标识符
    区分大小写:大写字母和小写字母被看作是不同的,两个拼写方法相同但大小不同的标志服被看做是不同的标识符
    控制结构:确定程序中的其他指令的执行顺序的指令。
    异步:不与计算机中的其他操作同时发生,换句话说,与计算机的动作不同步
    封装:实施信息隐蔽的语言特性
    对象类或类:属性和行为相似的一组对象的说明
    对象:与问题背景相关的事物或实体
    对象(实现阶段):类的一个实例
    类(实现阶段):对象的模式
    实例化:创建类的对象
    实例化:创建类的对象
    继承:类获取其他类的属性的机制
    多态:一种语言的继承体系结构中具有两个同名方法且能够根据对象应用合适的方法的能力

  • 相关阅读:
    MHA-Failover(GTID,Auto_Position=0)
    PXC中的GTIDs
    MySQL备份与恢复
    MySQL复制框架
    pt-table-checksum检测不出主从差异处理
    MHA-Failover可能遇到的坑
    MHA-手动Failover流程(传统复制&GTID复制)
    MSSQL-SELECT&UPDATE动作要申请的锁
    sybench压测下模拟误truncate数据恢复
    gtid_executed和gtid_purged变量是如何初始化的
  • 原文地址:https://www.cnblogs.com/beauty-666/p/11768105.html
Copyright © 2020-2023  润新知