04 2022 档案
摘要:前言:Log4j2 jndi注入分析学习笔记 log4j2 CVE-2021-44228漏洞复现 log4j2 CVE-2021-44228造成的原因 log4j2 一些payload如何绕过防火墙的原理 log4j2修复后的2.15.0 rc1补丁绕过问题 log4j2的拒绝服务攻击 log4j2
阅读全文
posted @ 2022-04-27 19:03
zpchcbd
摘要:前言:定点/浮点表示的学习笔记 #什么是定点表示 这里有个问题,为什么小数定点机中补码能表示最小的范围是-1?因为在补码+-0都是用00000000来进行表示了,所以在补码范围内中多出来了一个数的表示,也就是10000000 这里的话在小数里面也相同,那么也就是最小的数就是符号位为1,其他的数为0,
阅读全文
posted @ 2022-04-17 17:55
zpchcbd
摘要:前言:关于原码反码补码的学习笔记 记录自己的所学下来的知识和自己思考的问题,自己在学习的时候计组都是做笔记在书上,但是自己的字写的真的太难看了,翻的时候看不太懂,因为符号位的相关知识点会比较好理解,就就不记录了 计算机中你定义的有符号数和无符号数存储到内存中你会发现都是补码的形式... #原码 什么
阅读全文
posted @ 2022-04-17 13:06
zpchcbd
摘要:前言:CSAPP的DataLab的实验 因为一直在学习计组,已经在系统的学习原码/反码/补码/定点/浮点的相关的知识点了,这里这里打算肝完CSAPP的相关实验巩固自己的计组的知识 #BitXor 其实题目的要求就是通过xor转化为一个用&和~来进行表达的一个式子 /* 139 * bitXor -
阅读全文
posted @ 2022-04-16 20:22
zpchcbd
摘要:前言:图-寻找关键路径的学习和实现笔记 在学习关键路径之前,这里先来学习下关于AOE网的知识点 前面已经学习了关于AOV网的知识点,AOV网的定义就是其中的顶点表示活动,有向边<Vi,Vj>表示活动Vi必须先于活动Vj进行 在AOV网的边上加上权值表示完成该活动所需的时间,则称这样的AOV网为AOE
阅读全文
posted @ 2022-04-14 12:34
zpchcbd
摘要:前言:图-拓扑排序的学习和实现笔记 参考文章:https://www.jianshu.com/p/b59db381561a #有向无环图(DAG) 在学习拓扑排序之前,先了解一个概念有向无环图(DAG) 有向无环图DAG的定义:有向无环图指的是一个无回路的有向图。 如果有一个非有向无环图,且A点出发
阅读全文
posted @ 2022-04-13 18:21
zpchcbd
摘要:前言:后缀表达式转二叉树结构学习和实现笔记 上个星期在这篇笔记中记录了如果通过栈来实现中缀转后缀表达式以及如何进行运算栈中的结果 实现中缀转后缀表达式以及运算的笔记文章:https://www.cnblogs.com/zpchcbd/p/16083724.html 今天的话继续来学习如何在后缀表达式
阅读全文
posted @ 2022-04-13 13:01
zpchcbd
摘要:前言:弗洛伊德算法-寻找最短路径学习和实现笔记 #什么是弗洛伊德算法-寻找最短路径 个人理解,正常的一个图,将其转化为一个邻接矩阵,在邻接矩阵中,每一个权值实际上就是一个顶点到另外一个顶点之间的距离。 那这里我举个例子,比如如下的情况 首先需要知道下什么是中转顶点(我自己是这样叫的,野路子),比如图
阅读全文
posted @ 2022-04-11 20:26
zpchcbd
摘要:前言:迪杰斯特拉算法寻找最短路径学习和实现笔记 #什么是迪杰斯特拉算法-最短路径 #迪杰斯特拉算法-手动寻找最短路径 #为什么不能应用于负权值图 就比如如下图的情况,此时如果是正的有权图,那么找到的最短路径v0-v2,但是由于负权值图的存在(v1-v2的边权值为-5),这就导致了v0到v2顶点的最短
阅读全文
posted @ 2022-04-11 18:09
zpchcbd
摘要:前言:BFS广度优先遍历-寻找最短路径学习和实现笔记 dijkstra是bfs的升级版,就是说如果求最短路径,当图从无权值变成有权值时,bfs不再适用了,于是我们用dijkstra方法。换句话说,对于无权值图,dijkstra方法跟bfs是一致的。你可以画个无权图,用dijkstra走一遍,发现其实
阅读全文
posted @ 2022-04-11 16:25
zpchcbd
摘要:前言:克鲁斯卡尔算法-寻找最小生成树的实现和学习笔记 #什么是克鲁斯卡尔算法 跟普利姆算法一样都是基于MST性质来寻找最小生成树,但是它们之间的思路不一样,我今天学了这两个算法并且进行了实现,我个人会感觉克鲁斯卡尔算法会比较好理解,普利姆算法会比较绕 克鲁斯卡尔算法是通过找权值最小的边来实现寻找最小
阅读全文
posted @ 2022-04-10 17:01
zpchcbd
摘要:前言:普里姆算法寻找最小生成树的学习笔记和实现 #什么是普里姆算法 MST性质:设图 G = (V,E)所有顶点的集合为V,MST中顶点的集合为T。 从G中选取任意顶点作为MST的根,将其添加至T。 循环执行下述处理直至T=V 在连接T内顶点与V-T内顶点的边中选取权值最小的边 (V,E),将其作为
阅读全文
posted @ 2022-04-09 14:44
zpchcbd
摘要:前言:图的创建和深度优先遍历DFS和广度优先遍历BFS #图的邻接矩阵创建 // 图的初始化 Graph* initGraph(int vexNum) { Graph* pGraph = NULL; if (pGraph == NULL) { pGraph = (Graph*)malloc(size
阅读全文
posted @ 2022-04-09 12:06
zpchcbd
摘要:前言:这篇笔记先复习下图的基本概念 什么是图 图的定义Graph是由两个集合V和E组成的,记为G=(V,E),V的话指的就是顶点,E的话指的就是边,意思就是图是由顶点和边组成的 需要注意的是图可以没有边,但是一定要有顶点。 然后就是图的话大体类型分为有向图和无向图,有向图的顶点对表示<V1,V2>,
阅读全文
posted @ 2022-04-07 15:34
zpchcbd
摘要:前言:这里学习和实现下相关平衡二叉树,之前windows内核中就有看到AVL树,那时候也只会看到这个结构体,但是具体的实现觉得自己没必要了解,但是在学习数据结构的时候又发现了这个,那自己想反正内核也有,那自己就一起好好学习实现下 参考文章:https://zhuanlan.zhihu.com/p/5
阅读全文
posted @ 2022-04-04 15:19
zpchcbd
摘要:前言:二叉排序树的学习笔记 #什么是二叉排序树 #代码实现 #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<stdlib.h> #include<string.h> #define MAXSIZE 100 #define OK 1
阅读全文
posted @ 2022-04-04 14:56
zpchcbd
摘要:前言:树的存储结构/树和森林和二叉树的转换实现 参考文章:http://data.biancheng.net/view/198.html #什么是孩子兄弟表示法 孩子兄弟表示法,采用的是链式存储结构,其存储树的实现思想是:从树的根节点开始,依次用链表存储各个节点的孩子节点和兄弟节点。 因此,该链表中
阅读全文
posted @ 2022-04-03 20:09
zpchcbd
摘要:前言:哈夫曼树(最优二叉树)的笔记 到这里树的基本相关的数据结构都撸了一遍,接下来一个星期继续来撸图的结构,之前没有时间,现在有时间都来写一遍,为什么要写呢,我自己感觉其实还是跟逆向相关,因为有些东西数据结构会占比多,所以对经典的数据结构的了解,同样对逆向的水平会有长进! 哈夫曼树的构建比较简单,不
阅读全文
posted @ 2022-04-03 19:00
zpchcbd
摘要:前言:前序/中序线索二叉树寻找后继结点代码的笔记 #前序线索二叉树寻找后继 前驱有很多种情况,太麻烦,自己这里就不写了,因为寻找前驱结点的话,不可能是在当前结点的下面的,因为前序是根左右,左右结点只有可能是后继结点,想要找到该结点的前驱结点就需要先拿到父节点,然后再进行操作,这里只能相关的情况放在这
阅读全文
posted @ 2022-04-03 16:52
zpchcbd
摘要:前言:线索二叉树的笔记 #什么是线索二叉树 通过对应的线索二叉树,我们可以通过该树来观察到对应的结点的前驱结点和后继结点 需要注意的是,这里说的前驱和后继是针对序列而言的,就比如一个二叉树的前序序列为DAEFBCHGI,那么B结点的前驱结点指的就是F这个结点,B结点的后继结点指的就是C这个结点 #如
阅读全文
posted @ 2022-04-03 10:10
zpchcbd
摘要:前言:链式队列实现树的层序遍历的笔记 #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<stdlib.h> #include<string.h> #define MAXSIZE 100 #define OK 1 #define ER
阅读全文
posted @ 2022-04-03 10:09
zpchcbd
摘要:前言:最近打算把数据结构过一遍,这里都做下笔记 #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<stdlib.h> #include<string.h> #define SUCCESS 1 #define OVERSIZE 0 #
阅读全文
posted @ 2022-04-03 10:07
zpchcbd
摘要:前言:数据结构中的笔记,通过栈来实现算术表达式 对于括号的处理,我这个还是需要完善下的,因为不能递进处理多个括号,因为我只写了处理一个括号的标识符,如果需要支持多个括号处理的话,那么就需要有对应的多个括号的标识符。 #中缀表达式的加减乘除符号转换为后缀表达式 算数表达式是,自己实现的思路就是通过栈的
阅读全文
posted @ 2022-04-03 10:07
zpchcbd
摘要:前言:前序中序构造二叉树笔记 #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<stdlib.h> #include<string.h> #define MAXSIZE 100 #define OK 1 #define ERROR
阅读全文
posted @ 2022-04-03 10:06
zpchcbd