- 博客(14)
- 收藏
- 关注
原创 IP数据报格式
一、简介:一个IP数据报由首部和数据两部分组成首部的前一部分是固定长度,共20字节,是所有IP数据包必须具有的。在首部的固定部分的后面是一些可选字段,其长度是可变的。二、具体介绍:需要知道的是,每一个数据报中的数据部分不能太少,不然包装了半天结果打开包装里面数据只有一点,那不是很浪费。其次,这个首部不能太长,首部相当于包装,包装太大就很浪费,所以需要它精简一点。最后精简到至少20个字节,不能再少了。(1)固定部分① 版本:占 4 位,指 IP 协议的版本。目前 IP 协议版本号有IPv
2021-11-11 21:12:23 3334 1
原创 地址解析协议ARP
通信时使用了两个地址:IP地址(网络层地址)MAC地址(数据链路层地址)已经知道了一个机器(主机或者路由器)的IP地址,如何找出其相应的硬件地址?地址解析协议ARP就是用来解决这样的问题的:为了找出这个地址,我们需要进行封装。封装是一个自上而下的过程,也就是我们会先封装IP地址,然后再靠这个ARP协议来将IP地址与目的地址之间产生一个对应关系(映射关系),使得在封装的时候可以依据这个IP地址去封装到一个可以转发我的MAC地址,从而将我的数据运输出去。这里的“解析”也就是所谓的“找出”。地
2021-11-11 17:12:18 2704
原创 数字电路与逻辑设计之集成触发器
基本触发器:R-S触发器:R-S触发器的电路图:1. 先分析其工作原理:逻辑表达式:从表达式中可以看出,右端依然有Q,相当于是一个三变量的函数,所以可以画一个三变量的真值表。又因为必须在知道右端输入的情况下才能得到左端Q和Q非的状态,存在一个这样的时间差,所以将真值表中作为变量输入的Q写成Qn, 把最后输出的Q写为Qn+1因此根据三变量列出八种情况,得到:显然真值表可以进行降维:后面的真值表是最常用的。*比较组合逻辑电路和时序逻辑电路的方程:第一个方程是组合逻辑电路的方程,
2020-12-20 14:16:39 3352 1
原创 类模板中的友元函数的定义
类模板和友元简介:当一个类被包含一个友元声明的时候,类和友元是否是模板是相互无关的。如果一个类模板包含一个非模板友元,则友元被授权可以访问所有模板实例;如果友元自身是模板,类可以授权给所有友元模板实例,也可以之授权给特定实例。一、友元和类模板的一对一关系:类模板与另一个(类或函数)模板间友好关系的最常见的形式是:建立对应实例及其友元间的友好关系。例如://前置声明,在Blob中声明友元所需要的template<typename T> class BlobPtr;templat
2020-12-19 11:43:47 591
原创 类模板及其成员函数的定义及注意事项
一、类模板的定义:类似函数模板,类模板以关键字template开始,后跟模板参数列表,即 <typename T, ...>在类模板(及其成员函数)的定义中,我们将模板参数当作替身,代替使用模板时用户提供的类型或值。代码示例:template <typename T> //用T这个模板类型参数,来表示A中保存的元素的类型。//当用户实例化A时,T就会被替换为特定的模板实参类型class A{private: int size; T* list;public:
2020-12-18 02:12:02 7633
原创 c++中关于vector容器的各种函数介绍
c++中关于vector容器的各种函数介绍头文件:#include < vector >一、vector容器构造函数:函数原型:vector< T > v ;采用横板实现类实现,默认构造函数vector(v.begin(), v.end());将v[begin(),end()]区间中的元素拷贝给本身vector(n,elem);构造函数将n个elem拷贝给本身vector(const vector &vec);拷贝构造函数..
2020-10-08 23:15:00 18829
原创 数据结构之二叉树的应用——二叉平衡查找树
二叉查找树和二叉平衡查找树一.二叉查找树1.数据类型定义:typedef int InfoType;typedef int KeyType; // 假定关键字类型为整数typedef struct node // 结点类型{ KeyType key; // 关键字项 InfoType otherinfo; // 其它数据域,InfoType视应用情况而定 下面 // 不处理它 struct node *lchild,*rchild
2020-09-09 11:11:39 574
原创 数据结构之二叉树——二叉树的遍历
二叉树的遍历——四种遍历方式:一、先序遍历(PreOrderTraverse)按照 根—左—右 的顺序进行的遍历算法实现如下:void Visit(BTNode * node){ // 访问某结点,这里仅输出结点中的字符 printf(“%c ”, node->data);}void PreOrderTraverse(BTNode * root) // 先序遍历{ // 若root非空,则先访问root,再按照先序遍历方式访问其左子树 // 和右子树 if ( root-&
2020-09-07 13:08:13 584
原创 数据结构之树和二叉树——树的存储结构和二叉树的构造
一、树的存储结构1.顺序存储typedef int datatype;typedef struct node{ datatype data; //结点的数据 int parent; //存储其双亲结点下标}Pnode;2.链式存储(1)孩子表示法 :如图:假设一棵树的度为3,那么其存储结构可以表示为:typedef char datatype;typedef struct node{ datatype data; struct node *lchild; struct
2020-09-07 12:12:57 624
原创 数据结构之图论算法(五)——关键路径(Dijkstra算法与Floyd算法)
最短路径1.最短路径问题一般是求带权有向图G = (V,E)中的一个或多个点到G中其他各个点的最短路径。源点:路径上的第一个顶点终点:最后一个顶点求解方法:单源点最短路径——迪杰斯特拉(Dijkstra)算法多源点最短路径——佛洛伊德(Floyd)算法2.Dijkstra算法——从一个指定给源点到图上其余各点的最短路径【思路】按路径长度递增的次序产生最短路径引进一个辅助向量D,每个分量D[i]表示当前所找到的起始点v到每个终点vi的最短路径的长度。(类比于最小生成树中的c
2020-08-29 16:06:07 1965
原创 数据结构之图论算法(四)—— 拓扑算法
一、有向无环图(DAG图):无环的有向图应用示例1:描述含公共子式的表达式的工具——实现对相同子式的共享,从而节省存储空间;应用示例2:描述工程项目或系统过程的工具工程可分为若干个成为活动的子工程;子工程间存在一定约束,如某些子工程的开始必须在另一些子工程完成之后主要关心的问题1.工程是否能顺利进行;2.整个工程完成所必须的最短时间。二、AOV网和拓扑排序AOV网:结点为活动,弧的指向表示活动执行的次序AOE网:结点为事件,弧表示活动,权表示活动持续时间AOV网所代
2020-08-26 00:59:03 6120 1
原创 数据结构之图论算法(三)——构造图的最小生成树
构造图的最小生成树生成树:通过对无向图的生成树进行深度遍历和广度遍历后,我们发现它都遵循一个性质:MST性质:设N =(V,E)是一个连通网,U是
2020-08-25 10:53:43 2138
原创 数据结构的图论算法(二)——图的遍历
总:图的两种遍历方式:1.深度优先遍历(DFS,Depth First Search)2.广度优先遍历(BFS,Breadth First Search)(这里的遍历方式主要是针对以邻接表为存储形式的)从定义出发:图的遍历:从图中某一顶点出发访遍图中其余顶点,且使每一个顶点仅被访问一次因此,为防止一个顶点被访问多次,设一个辅助数组visited[n];visited[i] = 0或FALSE //vi未被访问过visited[i] = 1或TRUE //vi已被访问遍历
2020-08-24 00:28:28 510
原创 数据结构之图论算法(一)图的存储结构及其构建算法
数据结构之图论算法(一)图的存储结构构成图的基本要素:顶点+边(弧)邻接矩阵存储结构(数组表示法)总:图(二维数组) = 顶点(顶点表) + 边(邻接矩阵,即二维数组本身)设图为:A = (V,E),则上面是无向图的情况。其邻接矩阵是对称的。而有向图的邻接矩阵中,将列看为“出”,行看为“入”, 所以列上的顶点出,行上的顶点入,满足的才是1。因此,有向图不一定对称。有向网络的邻接矩阵也是同理:代码表示:#define INFINITY INT_MAX //最大值,表示无穷大#def
2020-08-11 18:56:24 1905
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人