admin 9月30日 汇编的有向图分析破解法 ## 汇编就是有向图 软件破解中,VM 始终是汇编分析的一个难点 某天晚上,在破解了一个软件的验证机制后,我突然意识到:汇编的结构本质就是一个**有向图**——`顺序指令`是单箭头,`分支指令`是双箭头。假设要破解的目标位置为终 56 0 0 随笔
admin 2019年06月17日 最小生成树算法 > 两个最小生成树算法前者适合稠密,后者适合稀疏,都是基于邻接矩阵的算法 ### Prim算法 ```C++ #define INF 32767 void Prim(MGraph g,int v) { int lowcost 723 0 0 数据结构
admin 2019年06月17日 循环队列的算法 > 循环队列模型是:front没有元素,rear有元素。P153 ### 循环队列的存储结构 ```C++ #define MaxSize 100 typedef int ElemType; struct SqQueue { 732 0 0 数据结构
admin 2019年06月17日 选择排序 > 堆排序的数组元素序号是从1开始的,因为堆实际上是一棵顺序存储(数组存储)的二叉排序树 ### 简单选择排序 ```C++ void SelectSort(SqList R[],int n) { int i,j,k; 773 0 0 数据结构
admin 2019年06月17日 线性表的折半查找 ### 线性表的存储结构 ```C++ #define MAXL 10 typedef int KeyType; typedef int InfoType; struct RecType { KeyType key; In 736 0 0 数据结构
admin 2019年06月17日 拓扑排序的算法 ### 原有邻接表存储结构加入入度数据项 ```C++ #define MAXV 4 typedef int ElemType; typedef int InfoType; struct ArcNode { int adjve 729 0 0 数据结构
admin 2019年06月17日 图的基本算法 > 1. MGraph是Matrix Graph邻接矩阵; AGraph是Adjacent Graph邻接表 > 2. 两种存储结构都是由邻接矩阵初始化的 > 3. 边表的初始化是用头插法,理解头插法的最佳想象是在有很多结点的情况下继续 731 0 0 数据结构
admin 2019年06月17日 图的遍历算法 ### 深度优先遍历 ```C++ int visited[MAXV]= {0}; void DFS(AGraph *G,int v) { ArcNode *p; visited[v]=1; coutnextarc; 753 0 0 数据结构
admin 2019年06月17日 顺序栈的算法 ### 顺序栈的存储结构 ```C++ #define MaxSize 100 typedef int ElemType; struct SqStack { ElemType data[MaxSize]; int top; 755 0 0 数据结构
admin 2019年06月17日 顺序表的算法 > - typedef int ElemType 表示为int起别叫ElemType. > - typedef int Elemtype[10]相当于:以后用Elemtype声明的变量都是一个int[10]数组. > - 除了retur 748 0 0 数据结构
admin 2019年06月17日 双链表的算法 ### 双链表的存储结构 ```C++ typedef int ElemType; struct DLinkList { ElemType data; struct DLinkList *prior; 700 0 0 数据结构
admin 2019年06月17日 树表的查找 > 1. BST:Binary Sort Tree,二叉排序树 > 2. p=malloc(...)强制类型转换→p=(BSTNode *)malloc(...) ### 二叉排序树的存储结构 ```C++ typedef in 744 0 0 数据结构
admin 2019年06月17日 模式匹配算法 > 1. 前缀常识:Sq→Sequence,指顺序结构, Li→Link,指链接结构 > 2. malloc的用法:struct SqString *p=(SqString *)malloc(sizeof(SqString)); # 718 0 0 数据结构
admin 2019年06月17日 链栈的算法 > p=lst->next这句话的含义是p为指向头结点之后第一个节点的指针。==NULL译为:没有第一个节点。 ### 链栈的存储结构 ```C++ typedef int ElemType; struct LiStack { 682 0 0 数据结构
admin 2019年06月17日 链队的算法 > 1. 链队是一个没有头结点的单链表, 它的front和rear都有具体元素。队空不是front==rear, 而是 > rear==NULL,front==rear可能是只有一个元素。 > 2. 存储结构就是在单链表的基础上加 775 0 0 数据结构
admin 2019年06月17日 归并排序 > Merge 将两个序列归并, MergePass 定义了在每一个长度下对序列怎样分区归并, MergeSort 以递增长度调用 MergePass ### 归并排序算法 ```C++ void Merge(SqList R[ 761 0 0 数据结构
admin 2019年06月17日 二叉树的基本算法 ### 二叉树的存储结构 ```C++ #define MaxSize 100 typedef char ElemType; struct BTNode { ElemType data; struct BTNode *lch 734 0 0 数据结构
admin 2019年06月17日 二叉树的遍历算法 > while(队列非空){出队;入队} ### 二叉树的存储结构 ```C++ #define MaxSize 100 typedef char ElemType; struct BTNode { ElemType da 714 0 0 数据结构
admin 2019年06月17日 单链表的算法 ### 单链表的存储结构 ```C++ typedef int ElemType; struct LinkList { ElemType data; struct LinkList *next; }; `` 700 0 0 数据结构