图数据结构和算法
图是由节点和边组成的非线性数据结构。节点有时也被称为顶点,而边是连接图中任意两个节点的线或弧。更正式的图可以定义为:
图表由有限一组顶点(或节点)和连接一对节点的一组边缘组成。
在上图中,顶点集合V ={0,1,2,3,4},边集合E ={01, 12, 23, 34, 04, 14, 13}。
图被用来解决许多现实生活中的问题。图用来表示网络。这些网络可以包括城市网络、电话网络或电路网络中的路径。图表也用于社交网络,如linkedIn, Facebook。例如,在Facebook中,每个人都用一个顶点(或节点)表示。每个节点都是一个结构,包含人像id、姓名、性别、语言环境等信息。
简介,DFS和BFS:
- 图表及其表示
- 宽度的第一个遍历图形
- 深度首先遍历图形
- 深度优先搜索的应用
- 广度优先遍历的应用
- 使用集合和哈希的图表表示
- 在图表中查找母顶
- 使用DFS的图形传递闭合
- 找到一个无向图的k核心
- 迭代深度首次搜索
- 使用BFS计算树中给定级别的节点数
- 计算两个顶点之间所有可能的路径
- 在给定条件下遍历整个矩阵的最小初始顶点
- 通过每次改变一个数字,从一个素数到另一个素数的最短路径
- 使用BFS的水壶问题
- 数森林中的树数
- 按照CLRS算法使用Vectors&Queue的BFS
- 来自源节点的Tree中的每个节点的级别
- 通过重复安抚和修剪构建二进制回文
- 转置图
- 带有圆的矩形路径
- 父数组中通用树的高度
- BFS使用STL进行竞争编码
- 一个n元树(无环图)的DFS表示为邻接表
- 为使树保持二部图而添加的最大边数
- 一个Peterson图问题
- 用JavaScript实现图形
- 使用BFS将来自给定源的所有路径打印到目的地
- 图的两个顶点之间的最小边数
- 计数距离集合中所有节点k -距离内的节点
- 双向搜索
- 最小边缘逆转以制作根
- 用于断开连接图的BFS
- 在给定的限制下移动加权尺度交替
- 最好的第一个搜索(知情搜索)
- 矩阵中不可访问的位置对的数目
- 树中两条不相交路径的最大积
- 删除边缘以最小化子树和差异
- 找到从矩阵的一个单元格转向另一个单元所需的最小动作数
- 通过骑士到达目标的最低步骤|设置1
- 将数字X转换为y所需的最小操作次数
- 在约束下到达数组结束的最低步骤
- 求给定数的最小二进制数的倍数
- 一棵树的根,给出最小高度
- 步进数
- 克隆一个无向图
- 无向图形的所有连接组件中的最小元素的总和
- 检查两个节点是否在树中的同一路径上
- 矩阵概率问题
- 求布尔矩阵中最大区域的长度
- 迭代深化搜索(IDS)或迭代深化深度优先搜索(IDDFS)
- Dijkstra最短路径算法
- 邻接表表示的Dijkstra算法
- Bellman-Ford算法
- 弗洛伊德沃肖尔算法
- 约翰逊的全对最短路径的算法
- 有向无环图中的最短路径
- 在定向和加权图形中的k边的最短路径
- 表盘的算法
- Dijsktra算法中的印刷路径
- 权重为1或2的加权图的最短路径
- 多级图形(最短路径)
- 非加权图中的最短路径
- 最小化弱连接节点的数量
- 中间性中心性(中心性测量)
- Dijkstra算法与Floyd-Warshall算法的比较
- Karp的最小平均值(或平均)重量循环算法
- 0-1 BFS(二进制重量图中的最短路径)
- 在无向图中找到最小权重周期
- 允许左、右、下、上移动的最小成本路径
- 为了使路径从src到dest,需要反向的最小边
- 找到距离银行的守卫的最短距离
- 找出有向图上的两个顶点之间是否有一条路径
- 有向图中的连通性
- 图中的连接点(或切点)
- 均匀的组件
- 双连通图
- 图中的桥
- 欧拉路径和回路
- 欧拉路径或电路的弗勒里打印算法
- 强连通分量
- 图表的传递关闭
- 找到岛屿的数量
- 找到岛屿的数量|SET 2(使用不相交集)
- 计算所有可能从源散到目的地,恰好k边缘
- 在定向图中的欧拉电路
- 计算不可达节点数
- 求图中特定顶点的度
- 检查给定的图是否是树
- 添加以制作欧拉电路所需的最小边缘
- 无向图中的欧拉路径
- 查找是否有超过k的路径
- 达到目标词的最短链的长度
- 打印从给定源到目标的所有路径
- 找出使用火车到达目的地的最低成本
- 找到可以链接一个字符串数组以形成圆圈|设置1
- 找到可以链接一个字符串数组以形成圆圈|套2
- 寻找强连接组件的塔扬算法
- 从一个特定节点开始的大小为k的循环数
- 每条边通过每个节点的路径(Königsberg的Seven Bridges)
- 我们可以根据值跳转的阵列中的循环元素数
- 在朋友图中形成的群的数量
- 将加权节点连接为数组的最低成本
- 计数单个节点在断开的图形中隔离子图
- 用不相交并集法计算非循环图中两个顶点之间的节点数
- Set 1(增量式)
- |集1 (Kosaraju使用DFS)
- 检查给定的指示图是否强烈连接|设置2(Kosaraju使用BFS)
- 检查删除给定的边是否会断开一个图
- 从给定集合中的每个节点中找出所有可到达的节点
- 无向图中的连通组件
- 每个顶点具有重量的图表中的k'th最重的相邻节点
- 无向图中三角形的数目
- 有向图和无向图中三角形的数目
- 检查一个给定图是否是二部图
- 蛇和梯子问题
- 最大限度地减少一套给定的朋友之间的现金流量彼此借用
- Boggle(在字符板中找到所有可能的单词)
- Hopcroft Karp算法的最大匹配-介绍
- Hopcroft Karp算法,用于最大匹配 - 实现
- 所有橙子腐烂的最短时间
- 在联系人列表中找到相同的内容
- 超立方体图
- 检查星形图
- 给定天数的最佳读取列表
- 打印小于或等于给定值的所有跳跃数字
- 斐波纳契立方体图形
- Barabasi Albert图(用于无标度模型)
- 从给定的所有顶点的度数构造一个图
- 度中心性(中心性测量)
- 卡茨中心性(中心性测量)
- 数学|图论实践问题
- 2-Satisfiability (2-SAT)问题
- 确定定向图中是否存在通用宿
- 图中汇聚节点的个数
- 具有两种或多种颜色边的图顶点的最大子集
- NetworkX:用于研究复杂网络的Python软件包
- 使用Python中的字典生成图表
- 计数在无向图中的边数
- 二团问题(检查图是否可以分成两个团)
- 检查给定顶点的度数是否表示一个图或树
- 使用二进制搜索找到图形的最小顶点覆盖大小
- 稳定的婚姻问题
- 图中依赖关系的总和
如果您发现任何不正确的任何内容,请写出评论,或者您想要共享有关上面讨论主题的更多信息。