- 博客(7)
- 资源 (5)
- 收藏
- 关注

原创 层次遍历_树
哈喽大家好,这里是蒟蒻hanyiyang的博文,今天,我来给大家,介绍一个关于图的算法,希望能帮助到大家!!!层次遍历大家来看一看上面这个图,为什么要说这是层次遍历呢,因为,这种遍历方式是一层一层进行的:第一层:F第二层:CE第三层:ADHG第四层:BM 这个就是层次遍历的大致顺序那么算法是怎样的呢???先将根节点入队只要队列不为空,只要队首元素有左儿子且左儿子没有被访问过...
2020-03-30 10:14:22
7950
9
原创 常用数据结构--二叉堆
二叉堆*在信息学奥赛中常会遇到给你一个数列,让你求最大值或最小值的问题,这个问题很简单,但是一旦遇到频繁查找那就很复杂了,这里就要涉及到一个新的数据结构,二叉堆.一、堆的定义堆的定义:n个元素的序列K={a1,a2,a3,…an},当且仅当满足如下条件时,称之为堆。Ki<=K2i且Ki<=K2i+1或者Ki>=K2i且Ki>=K2i+1,(i=1,2,… 可以看出,若将此序列看成完全二叉树.则堆的定义表明,完全二叉树中每个非结点的关键字均小于等于 (或大于等于)其左右子结点.这
2020-08-09 15:05:43
346
原创 常用数据结构-----二叉堆
二叉堆*在信息学奥赛中常会遇到给你一个数列,让你求最大值或最小值的问题,这个问题很简单,但是一旦遇到频繁查找那就很复杂了,这里就要涉及到一个新的数据结构,二叉堆.一、堆的定义堆的定义:n个元素的序列K={a1,a2,a3,…an},当且仅当满足如下条件时,称之为堆。Ki<=K2i且Ki<=K2i+1或者Ki>=K2i且Ki>=K2i+1,(i=1,2,… 可以看出,若将此序列看成完全二叉树.则堆的定义表明,完全二叉树中每个非结点的关键字均小于等于 (或大于等于)其左右子结点.这
2020-08-01 21:22:52
440
1
原创 最近公共祖先LCA
最近公共祖先LCA若两个节点的祖先相同,则叫该节点的公共祖先简称LCA显然,两个节点的LCA只有一个,且一定是两个点到根的路径中重复部分最下端的点算法1:求出每一个结点的深度询问两个节点是否重合,若重合,则LCA已求出否则,选择两个点中深度较大的点,并移动到他的父亲重复执行2,3步上图的执行流程如下:两个指针位于3与9。此时9节点深度较大,向上移动到它的父...
2020-03-30 10:37:59
265
5
原创 并查集 (Union-Find-Set)
并查集 (Union-Find-Set)并查集的本质是一种用树来表现集合,从而方便的实现查找和合并操作的思想和方法大致思想如下:将同一集合元素放在同一棵树里进行存储.将每棵树的根作为集合的代表,也就是标记.所以,我们判断查找元素所在集合就是查找其对应节点所在树的根.合并集合就是其对应树的操作.代码实现如下:1.并查集的初始化//将所有元素放在以自己为根的树里for(int ...
2020-03-28 11:25:02
1063
8
原创 邻接表建图
邻接表建图邻接表的思想:将同一个起点的边放在一个链表里面,也就是说对于一个有n个节点的图,我们需要维护n个这样节点的链表;用n个指针,分别指向以节点i为起点的第一条边touzhizhen,也可以理解成(1)中所述的链表的头指针。参考实现1(指针方式)struct edge { int to; edge *next;};edge *head[n];void addEdge(...
2020-03-23 07:32:48
1095
7
原创 快来看-栈的基本知识-初学者必备
栈的基本知识我应该是优快云里年纪最小的一个作者这是我的第一篇博文,请各位大神们多多关照,如果代码里有任何问题,恳请指教今天,蒟蒻要给大家介绍一下栈:栈是一个只能在某一端插入和删除的特殊线性表.如上图所示:栈就好比用桶堆积物品,一层一层的往上堆,取得时候只能从栈顶开始取,是一个只先进后出(first in,last out)的线性表.进行插入和删除的一端称之为栈顶,另一堆则成为栈底.插...
2020-02-07 20:42:32
544
1
ComputerZ_CN.exe
2020-04-01
Uninstall.exe
2020-04-01
chrome.exe
2020-04-01
PowerWord.exe
2020-04-01
GSP5.exe
2020-04-01
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人