![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
图论
文章平均质量分 95
PigeonEssence
不想当架构师的全栈不是好java boy!
展开
-
BFS,DFS,以及图(Graph),树(Tree)的思考
最近刷leetcode发现了很多题有使用到树,图,dfs和bfs,回想当时在离散数学,图论,还有数据结构的课上都有讨论过这方面的问题,于是就想尽自己的力去总结一份文档分享出来,也方便自己需要的时候查阅。个人理解可能并不准确,如有问题请联系修改。 这里做个目录吧: 1.图论中图的基础定义: BFS,DFS,以及图(Graph),树(Tree)的思考(1)_PigeonEssence的博客-CSDN博客我们在算法题以及很多算法理论中,经常会讨论到DFS和BFS算...原创 2021-11-11 16:27:16 · 14714 阅读 · 14 评论 -
BFS,DFS,以及图(Graph),树(Tree)的思考(6)
BFS和DFS 之前的章节,我们讨论完了图和树的一些基本结构与概念,我们就可以开始讨论一下经常看到的两个遍历方式:BFS和DFS这两种。 BFS: BFS就是我们所说的广度优先搜索,它的思路就是: 1.假设从图中的顶点V。 2.在访问了v之后,依次访问v的各个未被访问的邻接点。在分别从这些邻接点出发,依次访问他们的邻接点,并使“先被访问的顶点的邻接点”先于“后被访问的邻接点”先被访问。 3. 重复2中的操作直至图中所有的顶点都被...原创 2021-11-11 16:18:03 · 14532 阅读 · 0 评论 -
BFS,DFS,以及图(Graph),树(Tree)的思考(5)
计算机中的树(3) 红黑树(R-B Tree) 一种二叉查找树,但在每个节点增加一个存储位表示节点的颜色,可以是red或black. 通过对任何一条从根到叶子的路径上各个节点着色的方式的限制,红黑树确保没有一条路径会比其它路径长出两倍.它是一种弱平衡二叉树(由于是若平衡,可以推出,相同的节点情况下,AVL树的高度低于红黑树),相对于要求严格的AVL树来说,它的旋转次数变少,所以对于搜索,插入,删除操作多的情况下,我们就用红黑树. 性质1:每个节点要么是红色,要么是黑色。 性质2:根节...原创 2021-11-09 17:31:13 · 14961 阅读 · 3 评论 -
BFS,DFS,以及图(Graph),树(Tree)的思考(4)
计算机中的树(2) 从二叉查找树到二叉平衡树 二叉查找树(Binary Search Tree): 二叉搜索树就是在二叉树的基础上,固定了数据存入的顺序,我们固定左边子树小于根节点,右边子树大于根节点,存入的时候排好顺序,那么我们搜索的速度就会加快很多了。而且不仅搜索,还支持快速插入和删除数据 二叉搜索树有以下特点: 若任意节点的左⼦树不空,则左⼦树上所有结点的值均⼩于它的根结点的值; 若任意节点的右⼦树不空,则右⼦树上所有结点的值均⼤于它的根结点的值; ...原创 2021-11-05 09:00:59 · 14587 阅读 · 0 评论 -
BFS,DFS,以及图(Graph),树(Tree)的思考(3)
计算机树(1) 从链表到二叉树 了解了数学图论中的图和树,接下来思考一下计算机中的树。 链表: 我们再算法最开始接触到的也是最常用的数据结构,就是链表,为什么说树要从链表开始?这就是一个数据结构的问题: 一般我们的链表形态是这样的: class ListNode { int val; ListNode next; ListNode(int x) { val = x; } } 我们是在当前节点上,保存下一个节点,形成一个链式结构...原创 2021-11-05 08:50:58 · 14375 阅读 · 0 评论 -
BFS,DFS,以及图(Graph),树(Tree)的思考(2)
树(Tree) 由一个或多个(n>=0)节点组成的有限集合T,有且仅有一个节点称为根(root),当n>1时,其余的节点为m(m>=0)个互不相交的有限集合T1,T2,...,Tm。每个集合本身又是棵树,称其为根的子树。注意:空树也是树,树具有递归性(树中有树)。 在图论中,树的形态和计算机中树的形态是不同的,是通过根节点向上分支,更像是一个“树”而不是“树根”,从根(root)开始开枝(branch)散叶(leaf): 之前...原创 2021-11-02 17:34:58 · 14989 阅读 · 0 评论 -
BFS,DFS,以及图(Graph),树(Tree)的思考(1)
我们在算法题以及很多算法理论中,经常会讨论到DFS和BFS算法,也就是深度优先搜索算法(Depth-First-Search),和广度优先搜索算法(Breadth-First-Search)。算法一般都是基于某种具体的使用环境,或者说是某种数据结构之上的,那么DFS和BFS主要我们会使用在图和树这两种数据结构之上。 要讨论DFS和BFS,首先就要讨论图和树,这两个数据结构从大学的数据结构与算法到图论到后面的CG的学习都在使用。 图(Graph) 图的定义: 七桥问题:...原创 2021-11-02 16:11:13 · 15155 阅读 · 0 评论