随笔分类 -  数据结构与算法

摘要:位运算符 & :与 | :或 ^ :异或 ~ :非(取反) >> << :右移(补符号位),左移(补0) >>> :右移(0补充高位) 对于int型,1<<35与1<<3是相同的,而左边的操作数是long型时需要对右侧操作数模64 异或: 可以理解为不进位加法:1+1=0,0+0=0,1+0=1 性 阅读全文
posted @ 2021-08-02 16:31 gonghr 阅读(443) 评论(0) 推荐(0)
摘要:选择排序 概念 首先,找到数组中最小的那个元素,其次,把它和数组的第一个元素交换位置(如果第一个元素就是最小的元素那么它就和自己交换)。再次,在剩下的元素中找到最小的元素,将它与数组的第二个元素交换位置。如此往复,直到将整个数组排序。这种方法叫做选择排序,因为它在不断地选择剩余元素中地最小者。 代码 阅读全文
posted @ 2021-07-20 23:24 gonghr 阅读(482) 评论(0) 推荐(0)
摘要:声明:图片及内容基于https://www.bilibili.com/video/BV1ez4y1Z7Ch?from=articleDetail 排序概述 插入排序 基本思想 关键问题 核心代码 #include<iostream> using namespace std; void insertS 阅读全文
posted @ 2021-04-28 10:35 gonghr 阅读(113) 评论(0) 推荐(0)
摘要:声明:图片及内容基于https://www.bilibili.com/video/BV1uT4y1A7Ut?from=articleDetail 散列表的概述 散列函数 直接定址法 除留余数法 数字分析法 平方取中法 折叠法 处理冲突的方法——开放定址法 线性探测法 二次探测法 随机探测法 处理冲突 阅读全文
posted @ 2021-04-24 09:12 gonghr 阅读(174) 评论(0) 推荐(0)
摘要:声明:图片及内容基于:https://www.bilibili.com/video/BV1kT4y1w7Cx?from=articleDetail 平衡二叉树的定义 构造平衡二叉树 平衡二叉树的调整 LL型 ①将A的左孩子B提升为新的根结点; ②将原来的根结点A降为B的右孩子; ③各子树按大小关系连 阅读全文
posted @ 2021-04-21 09:19 gonghr 阅读(203) 评论(0) 推荐(0)
摘要:声明:图片及内容基于https://www.bilibili.com/video/BV15f4y197v1?from=articleDetail 二叉排序树概念 二叉树的定义 类的定义 class BiSortTree{ private: BiNode *root; public: BiSortTr 阅读全文
posted @ 2021-04-17 12:38 gonghr 阅读(191) 评论(0) 推荐(0)
摘要:声明:图片及内容基于https://www.bilibili.com/video/av81382764 原理: 核心代码 #include<iostream> #include<algorithm> using namespace std; void binarySearch(int a[],int 阅读全文
posted @ 2021-04-11 13:50 gonghr 阅读(215) 评论(0) 推荐(0)
摘要:声明:图片及内容基于https://www.bilibili.com/video/BV1BZ4y1T7Yx?from=articleDetail 原理 AOE网 关键路径 数据结构 核心代码 TopologicalSort /* TopologicalSort用于实现拓扑排序 参数:result用来 阅读全文
posted @ 2021-04-10 10:43 gonghr 阅读(603) 评论(0) 推荐(0)
摘要:声明:图片及内容基于:https://www.bilibili.com/video/BV1Wp4y1X79x?from=articleDetail 原理 AOV网 拓扑排序 数据结构 核心代码 void ALGraph::TopologicalSort(){ for(int i=0;i<vertex 阅读全文
posted @ 2021-04-05 10:56 gonghr 阅读(334) 评论(0) 推荐(1)
摘要:声明:图片及内容基于https://www.bilibili.com/video/BV1oa4y1e7Qt?from=articleDetail 多源最短路径的引入 Floyd算法 原理 加入a: 加入b: 加入c: 数据结构 核心代码 Floyd() void MGraph::Floyd(){ f 阅读全文
posted @ 2021-04-04 11:23 gonghr 阅读(838) 评论(0) 推荐(1)
摘要:最短路径问题 最短路径是把两点之间路径最短的问题,应用如导航,两个地方怎么走距离最短。可以存在到不了的情况。 这个问题是说,如何找到从某个特定的节点出发,通向其他节点的最短路径。它只着眼于点与点之间的路径问题,并不关注整个图,也就意味着对一个节点运行算法的结果与另一个节点的结果之间没有多少关系。 比 阅读全文
posted @ 2021-04-04 09:12 gonghr 阅读(2055) 评论(2) 推荐(1)
摘要:声明:图片及内容基于:https://www.bilibili.com/video/BV16C4y1H7Zc?from=articleDetail 最短路径 Dijkstra算法 原理 数据结构 核心代码 findMinDist() int MGraph::findMinDist(){ int le 阅读全文
posted @ 2021-04-03 11:18 gonghr 阅读(1110) 评论(0) 推荐(0)
摘要:声明:图片及内容基于https://www.bilibili.com/video/BV1yp4y1Q74o?from=articleDetail 最小生成树原理 、 普利姆(Prim)算法 原理 Prim算法的实现 核心代码 void MGraph::Prim(int start){ shortEd 阅读全文
posted @ 2021-03-31 08:40 gonghr 阅读(2490) 评论(1) 推荐(3)
摘要:声明:图片及内容基于https://www.bilibili.com/video/BV1zc411h7T7?from=articleDetail 树和二叉树之间的对应关系 树转化成二叉树 具体步骤 1.兄弟加线 2.保留双亲与第一个孩子连线,删除与其他孩子的连线 3.顺时针转动使其层次分明(原有的线 阅读全文
posted @ 2021-03-28 15:55 gonghr 阅读(171) 评论(0) 推荐(0)
摘要:前序遍历 void PreOrder(BiNode *bt){ BiNode * p=bt; stack<BiNode*> s; while(p!=NULL||!s.empty()){ while(p!=NULL){ cout<<p->data<<" "; s.push(p); p=p->lchil 阅读全文
posted @ 2021-03-28 15:50 gonghr 阅读(239) 评论(0) 推荐(0)
摘要:声明:图片及内容基于https://www.bilibili.com/video/BV1rp4y1Q72r?from=articleDetail 图的遍历 深度优先遍历(DFS) DFS核心是递归和栈 原理 邻接矩阵DFS代码 template <class T> void MGraph<T>::D 阅读全文
posted @ 2021-03-27 14:04 gonghr 阅读(394) 评论(0) 推荐(0)
摘要:声明:图片及内容基于https://www.bilibili.com/video/BV1MK411j7CR?from=articleDetail 相关概念 特点 构造过程 存储结构 代码 #include<iostream> #include<vector> #include <limits.h> 阅读全文
posted @ 2021-03-27 11:01 gonghr 阅读(487) 评论(0) 推荐(0)
摘要:声明:图片及内容基于https://www.bilibili.com/video/BV1Qf4y1m77B?from=articleDetail 邻接矩阵(数组表示法) 无向图的邻接矩阵 有向图的邻接矩阵 网图的邻接矩阵 邻接矩阵存储有向网图代码 类的声明 template <class T> cl 阅读全文
posted @ 2021-03-27 11:00 gonghr 阅读(207) 评论(0) 推荐(1)
摘要:声明:图片及内容基于https://www.bilibili.com/video/BV1tQ4y1N7KC?from=articleDetail 图的定义 图的基本术语 阅读全文
posted @ 2021-03-27 08:19 gonghr 阅读(249) 评论(0) 推荐(0)
摘要:#include<iostream> #include<queue> using namespace std; struct BiNode{ char data; struct BiNode *lchild,*rchild; }; void Create(BiNode* &root){ char c 阅读全文
posted @ 2021-03-26 18:35 gonghr 阅读(101) 评论(0) 推荐(0)