- 博客(8)
- 收藏
- 关注
原创 邻接表代码
简洁版 #include <iostream> using namespace std; // 表链接的元素 struct node { // 链接的是那个点 int index; node *next; }; // 整个表 struct head { // 第一个链接的结点 node *First; } * rode[100]; void Insert(int x, int y) { node *t; t = (node *)malloc
2020-06-18 17:43:18 329
原创 堆
文章目录标准复炸版简洁版 插入建立 把x直接放到i位置上 看x所属的子树,让x一直与他的父节点比较 直到x为顶或不满足条件退出 如果完数据后建立 过程和Insert差不多的 只不过是向下比较 每次看一个子树,从最小的子树的开始 最小的子树的根节点是N/2 所以第一个p结点是这个 让p和他的儿子比较 若要最小堆,则从儿子中找最小的和父亲比 满足parent > child 就交换 标准复炸版 // Inset创建 和 Build创建
2020-06-18 15:28:16 107
原创 先序中序转二叉树
文章目录先序中序后序中序 先序中序 在纸上计算一下他们转的过程就很容易发现规律 写程序更简单,只需要计算出每个子树的起始位置 计算的时候使用静态链表更为方便 #include <iostream> #include <vector> #include <algorithm> #include <map> #include <queue> using namespace std; struct node { int D
2020-06-18 10:53:17 642 3
原创 矩阵压缩公式和广义表
对称矩阵下标变换公式 名称 公式 上三角元素对应的坐标 j(j+1)/2+i 下三角元素对应的坐标 i(i+1)/2+j 广义表做题概念 表头:第一个非空元素 表尾:其余元素 长度:括号数+1 深度:括号嵌套数 ...
2020-06-18 09:35:27 532
原创 KMP
KMP KMP算法的计算过程相对来说比较容易 假如有两个串,s(原始串)和p(需要从s中查找的子串) 它主要节省的时间的原因是,s一直前进,回溯只在p上进行,重要的是p的回溯并不是直接回到p的原点 我们来设想一下,如果p的开头是abc,而在p的中间或后面的位置也有abc这三个子串:abcdefabcg 如果有一次和s的比对,已经比对到了后面的abc(前面的字符都一样),在比较g的时候出现了问题,那是不是可以从d开始比较呢?而不是傻乎乎的从开头的a开始 答案是可以的,因为比...
2020-06-18 08:34:32 619
原创 排序算法-全!!-详细代码
文章目录总的冒泡排序插入排序 代码全部再最下面 我放到一起了 注释比较详细 每一个都有对应的函数 总的 排序算法 平均时间复杂度 最差时间复杂度 空间复杂度 数据对象稳定性 冒泡排序 O(n2) O(n2) O(1) 稳定 选择排序 O(n2) O(n2) O(1) 数组不稳定 链表稳定 插入排序 O(n2) O(n2) O(1) 稳定 快速排序 O(n*log2n) O(n2) O(log2n) 不稳定 堆排序 O(n*log2n) O(n*log2
2020-06-02 19:53:10 310
原创 离散数学复习题
离散数学课堂笔记传送门 文章目录离散数学课堂笔记传送门第一章 命题逻辑第二章 谓词逻辑 第一章 命题逻辑 答案 第二章 谓词逻辑 第三章 集合与关系 3.1 3.2 复合关系 和 关系的闭包运算 3.3 集合的划分和覆盖 和 等价关系等价类 3.4 序关系 第四章函数 第五章 代数结构 5.1 代数系统的引入 5.2 半群和独异点 5.3 群 5.4 子群 5.5 阿贝尔群和循环群 5.6 陪集和拉格朗日定理 5.7 同态和同构 第七章 图论 7.1 图的基本概念 7.2
2020-06-01 10:55:18 925
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人