zoukankan      html  css  js  c++  java
  • 201920201学期 20192402 《网络空间安全专业导论》第四周学习总结

    第8章

    8.1

    抽象数据类型:属性(数据和操作)明确地与特定实现分离的容器

    设计的目的是通过抽象减小复杂程度

    可以从:应用层,逻辑层,现实层三个方面观察数据

    应用(用户)层:特定问题中的数据的视图

    逻辑(抽象)层:数据值(域)和处理它们的操作的抽象视图

    实现层明确表示出了存放数据项的结构,并用程序设计语言对数据的操作进行编码

    实现层涉及了数据结构,即一种抽象数据类型中的符合数据域的实现

    容器存在的唯一目的是存放其他对象

    8.2

    栈是抽象复合结构,只能从一端访问栈中的元素。可以在第一个位置插入元素,也可以删除第一个元素。后进先出。

    另一种描述栈的说法:删除的项总是在栈中时间最短的项目

    插入操作没有任何约束,整个LIFO行为都体现在删除操作上

    插入操作叫做Push(推进),删除操作叫做Pop(弹出)。

    栈没有长度属性,所以没有返回栈中项目个数的操作

    需要确定栈是否是空的

    8.3

    队列中的项目从一端入,从另一端出。先进先出

    另一种描述:删除的总是在队列中时间最长的项目

    插入操作没有任何约束,整个FIFO行为都体现在删除操作上

    8.4

    列表有三个属性:项目是同构的,项目是线性的,列表是变长的

    每个项目除了第一个都有一个独特的组成部分在他之前,除了最后一个都有一个独特的组成部分在他之后。一个列表至少有三个项目

    列表通常提供插入一个项目的操作,删除一个项目的操作,检索一个项目是否存在以及报告列表中项目数量,有一些机制允许用户查看序列中的每一项

    因为列表中的项目可被删除和检索,所以列表中的项目必须能够相互比较

    数组是内嵌结构,列表是抽象结构

    列表也可被形象化为链式结构,链式结构一节点的概念为基础。一个节点由两部分构成:用户的数据和指向列表的下一个节点的链接或指针

    列表的最后一个结点的指针变量存放的是表示列表结束的符号

    有序列表中,项目之间具有语义关系。除了第一个项目之外所有项目都存在某种排序关系,除了最后一个项目,所有项目都有着相同的关系

    8.5.1

    二叉树是一种抽象结构,每个节点可以有两个后继节点

    树的头部是一个起始节点,叫做根

    如果一个节点左边的子节点存在,则这个节点叫做左子女

    如果一个节点没有子女,则这个节点叫做树叶

    根节点和每个节点之间只有一条路径,除了根节点,每个节点都只有一个父母节点

    根节点是书中其他所有节点的前辈

    8.5.2

    二叉检索树还具有语言属性来刻画树中节点的值:任何结点的值都大于他左子树中的所有结点的值,小于他的右子树中的值

    树的形状是由项目插入树的顺序决定的

    要输出根的值,必须先输出它的左子树中的所有值,还必须输出他的右子树的值

    一个空树的节点数:1加上左子树中的节点个数和右子树中的节点个数

    8.6

    图:由一组节点和一组把节点相互连接起来的边构成的数据结构

    顶点:图中的节点

    边(弧):表示图中两个节点的连接的顶点对

    无向图:其中边没有方向的图

    有向图:其中的便是从一个顶点指向另一个顶点的图

    临顶点:通过边连接起来的两个顶点

    路径:连接途中两个顶点的一系列点

    8.6.2

    图搜索方法:深度优先搜索,广度优先搜索,单源最短路搜索

    8.7

    许多子程序都是高级语言或语言附带库的一部分

    参数列表:程序中两部分之间的通信机制

    形参:列在子程序后的括号中的标识符

    实参:子程序调用中列在括号中的标识符

    8.7.2

    传递参数的基本方式有两种:通过值传递和通过引用(地址)传递

    如果一个形参是值参,调用单元将把实参的一个副本传递给子程序

    如果一个形参是引用参数,调用单元将把实参的地址传递给子程序

    问题:参数传递的过程    形参和实参的理解

    第九章

    9.1

    面对对象设计的重点是对象以及他们在问题中的交互

    9.1.1

    对象:在问题背景中相关的事物或实体

    对象类:一组具有相似的属性和行为的对象的描述

    域:类中的特定项,可以是数据或子程序

    方法:定义了类的一种行为的算法

    9.1.2

    设计方法

    1.集体讨论:确定类

    2.过滤:对类的整理

    3.场景:确定每个类的责任

    4.责任算法:类执行职责的方法

    9.2

    编译器:把高级语言编写的程序翻译成机器码的程序

    解释器:输入用高举语言编写的程序,知道计算机执行每个语句指定的动作的程序

    高级语言分为两种:需要编译的,需要解释的

    字节码:编码Java源代码使用的标准机器语言

    Java程序总是被翻译的字节码

    9.3

    命令式范型:面向过程的范例,面向对象的范例

    声明式范型:函数式模型,逻辑模式

    9.4

    布尔表达式:一个标识符序列,标识符之间由相容的运算符分隔,求得的值是true或false

    强类型化:每个变量都有一个类型,只有这种类型的值才能存储到该变量中

    数据类型:以阻止以及能够应用于这种类型的值的基本操作集合的说明

    9.4

    控制结构:确定程序中的其他指令的执行顺序的指令

  • 相关阅读:
    linux上mysql安装详细教程
    druid部署
    druid.io本地集群搭建 / 扩展集群搭建
    CentOS7.1.x+Druid 0.12 集群配置
    Python小项目四:实现简单的web服务器
    hadoop学习---运行第一个hadoop实例
    Hadoop集群完全分布式坏境搭建
    mysql备份与恢复
    mysql登录的三种方式
    nginx代理,负载均衡
  • 原文地址:https://www.cnblogs.com/bayiti/p/11767978.html
Copyright © 2011-2022 走看看