数据结构
度为2的树和二叉树的区别
度为2的树是指一棵树中度最大的结点的度为2,而二叉树是所有节点度不超过2的树,因此二叉树比度为2的节点更灵活,可以为空树,且有左右子树的区别
迪杰斯特拉算法和弗洛伊德算法的区别
- 迪杰斯特拉算法用于解决单点最短路径,他用了贪心的思想,根据当前离开始节点最近为标准来确定当前扩展节点,适用于边稀疏图,不存在负权值边
- 弗洛伊德算法用于解决多源最短路径,他用了动态规划的思想,不断在两个点中加入第三个点判断两点路径有没有更短,若更短则更新路径,适用于边稠密图,可以有负权值边
确定图是一个环
如果存在回路,则必存在一个子图,是一个环路,所有节点的度都大于2。
使用拓扑排序,如果能完成的话,说明图中没有环。
证明链表成环
快慢指针,若快指针和满指针重合那么就有环。
最小生成树算法
- Prim又称加点法,每次找出距离最小的边对应的点,依次纳入最小生成树中,适合于边变稠密图
- Krusal又称找边法,将图中的边按长度由小到大排序,在不成环的情况依次纳入最小生成树中,适用于边稀疏图
关键路径和关键活动
- 关键路径:一个AOE网(边表示活动)中最早开工时间和最晚开工时间相等的路径,我们成为关键路径
- 关键活动:多个关键路径中都有的活动我们成为关键活动
线索二叉树
n各结点的二叉链表共有2n个链域,非空链域为n-1个,线索二叉树若左孩子为空,则把左指针指向前驱节点,若右孩子为空就把右指针指向后续节点
哈希表(Hash table,也叫散列表)
是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。
操作系统
进程调度算法
- 先来先服务
- 短作业优先
- 时间片轮转
- 高相应比优先
- 优先权调度
进程同步四大准则
- 空闲让进
- 忙则等待
- 有限等待
- 让权等待
磁盘调度算法
- 一次磁盘读写需要的时间
- 寻道时间:移动磁头时间,由磁盘调度算法决定
- 延迟时间:将磁道移动到磁头下所花的时间(平均延迟速度通常取扫过一个扇面的时间),由转速决定
- 传输时间:读取文件的时间(扫过一个扇区的时间),由转速决定
- 磁盘调度算法
- 先来先服务
- 最短寻找时间优先
- 扫描算法:只有磁头移动到最边缘才可以改变磁头移动方向
- 循环扫描算法:只有磁头朝某个方向移动时才会响应请求,移动到边缘后立即让磁头返回起点
实时操作系统和分时操作系统
- 实时操作系统:指操作系统需要在指定时间内完成对该事件的处理,例如导弹发射系统,以及股票分析系统等需要快速进行信息反馈的系统
- 分时操作系统:一台主机连接了多个终端,每个终端有一个用户在使用,例如我们操作系统中处理机调度的时间片轮转算法
文件实现
- 连续分配
- 隐式链接分配
- 显式链接分配
- 索引分配
计算机网络
TCP/IP是如何实现可靠传输的
- 序号:面向字节流,为数据流中的每个字节都编上了一个序号
- 确认:累计确定,确认号之前的所有数据都已经完全正确接收
- 重传:对于超时的报文,我们选择重新发送
距离向量路由算法和链路状态路由算法
- RIP距离向量路由协议
- 基于距离的,只发送当前本路由器的路由表,每经过一个路由器,跳数+1(一条路径上最多只能包含15个路由器)
- RIP基于UDP协议
- 每隔一段时间自动交换路由信息
- OSPF链路状态路由协议
- 基于链路状态的,发送与本路由器相邻的所有路由器的链路状态
- OSPF基于IP数据报
- 只有链路状态改变时,才会向所有路由器用洪泛法发送信息
子网掩码的作用
子网掩码是一种用来指明一个IP地址所标示的主机处于哪个子网中。
路由表中的字段
1.目的地址 2网络掩码(与目的地址一起识别主机所在网段)3下一跳IP地址 4下一跳接口
ARP协议的原理
主机A要向主机B发送IP数据包时,先向其ARP高速缓存中查看有无主机B的IP地址。如果有就可查出硬件地址,写入MAC帧,如果没有的话就向局域网中广播ARP请求
- IP地址可变,4字节,工作在网络层
- MAC地址不可变,6字节,工作在数据链路层
网关
协议转换器,用于实现网络之间的相互连接,相当于一个翻译器,可以使不同协议,语言,数据在不同系统之间进行转换。
TCP拥塞控制
如何知道发生冲突:没有在时间间隔内收到接收方的确认报文段,则就可以认为网络出现了拥塞
-
慢开始
TCP传输开始阶段,拥塞窗口按照指数速度增加
-
拥塞避免
在发送窗口达到初始门限时,拥塞窗口只能线性加一,并且当发生超时重传,就将拥塞窗口置1,门限值更新为发生拥塞时的一半
优化方法
-
快重传
使发送方尽快进行重传,不等超时重传器超时再重传
-
快恢复
一旦收到了三个重复确认,开始执行快恢复算法,发送方将慢开始门限和拥塞窗口设置为当前的一半,从而开始拥塞避免
TCP流量控制(数据链路层的流量控制是点对点的,而传输层的流量控制是端到端的。)
-
停止等待协议
每发完一个帧,就等待对方确认,在收到确认后再发送下一帧。
-
后退N帧协议
发送窗口大于1,接收窗口等于1。
-
选择重传协议
发送窗口大于1,接收窗口大于1。
OSI七层模型
TCP/UDP
UDP | TCP | |
---|---|---|
是否连接 | 无连接 | 面向连接 |
是否可靠 | 不可靠传输,不使用流量控制和拥塞控制 | 可靠传输,使用流量控制和拥塞控制 |
连接对象个数 | 支持一对一,一对多,多对一和多对多交互通信 | 只能是一对一通信 |
传输方式 | 面向报文 | 面向字节流 |
首部开销 | 首部开销小,仅8字节 | 首部最小20字节,最大60字节 |
适用场景 | 适用于实时应用(IP电话、视频会议、直播等) | 适用于要求可靠传输的应用,例如文件传输 |
计算机组成原理
SRAM和DRAM
-
SRAM 不需要刷新 集成度低 价格比较贵 存取速度比较快 通常用于cache
-
DRMA 需要刷新 集成度高 价格比较便宜 存取速度比较慢 通常用于内存
CPU设计方式
-
硬布线逻辑控制(组合逻辑控制器)
以组合逻辑电路根据指令码、状态和时序,即时产生,速度较快,不宜修改,应用于精简指令系统计算机的CPU中
-
微程序控制
以微程序的形式存放在控制存储器中,速度较慢,易于修改,应用于复杂指令系统计算机的CPU中
并行接口和串行接口
-
并行接口
数据的各位同时进行传送,传输速率比较快,但是抗干扰能力不强,适用于距离较近的传输
-
串行接口
数据一位一位进行传送,传输速率比较慢,抗干扰能力比较强,适用于距离较远的传输