2021-2022-1学期 20212323 《网络空间安全专业导论》第四周学习总结
收获
第八章 抽象数据类型与子程序
8.1 抽象数据类型
- 抽象数据类型(ADT):属性(数据和操作)明确地与特定实现分离的容器。
- 数据结构:一种抽象数据类型中的复合数据域的实现。
- 容器:存放和操作其他对象的对象。
8.2 栈
LIFO 后进先出
插入:Push(推进),删除:Pop(弹出)
8.3 队列
FIFO 先进先出
插入:Enqueue、Enque、Enq、Enter、Insert.
删除:Dequeue、Deque、Deq、Delete、Remove.
8.4 列表
- 列表属性特征:项目是同构的;项目是线性的;列表是变长的。
- 链式结构:一个将数据项和找到下一项位置的信息保存到同一容器的实现方法。
8.5 树
8.5.1 二叉树
- 二叉树:具有唯一起始节点(根节点)的抽象复合结构,其中每个节点可以有两个子女节点,根节点和每个节点之间都有且仅有一条路径。
- 根:树中唯一的开始节点。
- 叶节点:没有子女的树节点。
8.5.2 二叉检索树
1.在二叉检索树中搜索
2.构造二叉检索树
3.输出二叉检索树中的数据
8.5.3 其他操作
8.6 图
- 图:由一组节点和一组把节点相互连接起来的边构成的数据结构。
- 顶点:图中的节点。
- 边(弧):表示图中两个节点的连接的顶点对。
- 无向图:其中的边没有方向的图。
- 有向图:其中的边是从一个顶点指向另一个顶点(或同一个顶点)的图。
- 邻顶点:通过边连接起来的两个顶点。
- 路径:连接图中两个顶点的一系列顶点。
8.6.1 创建图
创建一个表格:
- 在表格中添加一个顶点
- 在表格中添加一条边
- 在表格中添加一个权值
8.6.2 图算法
1.深度优先搜索(尽可能往更远的路径检查)
2.广度优先搜索(优先检查所以与起点相邻的顶点)
3.单源最短路搜索
8.7 子程序
8.7.1 参数传递
- 参数列表:程序中两部分之间的通信机制。
- 形参:列在子程序名后的括号中的标识符。
- 实参:子程序调用中列在括号中的标识符。
8.7.2 值参与引用参数
- 值参:由调用单元传入实参的副本(写在留言板上)的形参。
- 引用参数:由调用单元传入实参的地址(写在留言板上)的形参。
第九章 面向对象设计与高级程序设计语言
9.1 面向对象方法
9.1.1 面向对象
- 对象:在问题背景中相关的事物或实体。
- 对象类或类:一组具有相似的属性和行为的对象的描述。
- 字段:表示类的属性。
- 方法:定义了类的一种行为的特定算法。
9.1.2 设计方法
头脑风暴、过滤、场景阶段、责任算法阶段。
1.头脑风暴
2.过滤
3.场景
- 封装:把数据和动作集中在一起,使数据和动作的逻辑属性与它们的实现细节分离。
4.责任算法
5.总结
9.1.3 示例
9.2 翻译过程
9.2.1 编译器
- 编译器:把用高级语言编写的程序翻译成机器码的程序。
9.2.2 解释器
- 解释器:输入用高级语言编写的程序,指导计算机执行每个语句指定的动作的程序。
- 字节码:编译Java源代码使用的标准机器语言。
9.3 程序设计语言范型
9.3.1 命令式范型
1.面向过程的范型
2.面向对象的范型
9.3.2 声明式范型
1.函数式模型
2.逻辑编程
9.4 高级程序设计语言的功能性
9.4.1 布尔表达式
- 布尔表达式:一个标识符序列,标识符之间由相容的运算符分隔,求得的值是true或false。
9.4.2 数据归类
- 强类型化:每个变量都有一个类型,只有这种类型的值才能存储到该变量中。
- 数据类型:一组值以及能够应用于这种类型的值的基本操作集合的说明。
1.数据类型
整数、实数、字符、布尔型、字符串。
整数、实数、字符和布尔型称为简单数据类型或原子数据类型。
2.声明 - 声明:把变量、动作或语言中的其他实体与标识符关联起来的语句,使程序员可以通过名字引用这些项目。
- 保留字:一种语言中具有特殊意义的字,不能用它作为标识符。
- 区分大小写:大写字母和小写字母被看作是不同的;两个拼写方法相同但大小写形式不同的标识符被看作是两个不同的标识符。
9.4.3 输入/输出结构
9.4.4 控制结构
- 控制结构:确定程序中的其他指令的执行顺序的指令。
1.嵌套逻辑
2.异步处理 - 异步:不与计算机中的其它操作同时发生;换句话说,与程序的操作不同步。也叫做事件驱动处理,通常被用在Java和VB.NET中。
9.5 面对对象语言的功能性
面对对象语言的基本构造是类。
9.5.1 封装
- 封装:实施信息隐蔽的语言特性。
- 对象(问题求解阶段):与问题背景相关的事物或实体。
- 类(实现阶段):对象的模式。
- 对象类或类(问题求解阶段):属性和行为相似的一组对象的说明。
- 对象(实现阶段):类的一个实例。
9.5.2 类
- 实例化:创建类的对象。
9.5.3 继承
- 继承:类获取其他类的属性(数据字段和方法)的机制。
- 超类:被继承的类。
- 派生类:继承的类。
是一种is-a关系
9.5.4 多态
- 多态:语言在运行时确定给定调用将执行哪些可能的方法的能力。
9.6 过程设计与面向对象设计的区别
- 面对对象的设计中,列表数据结构和子程序需要在类中绑定在一起;
- 面向过程的版本中,列表被呈现为传递给子程序的记录,以便子程序可以对其操作。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)