图数据结构和算法

  • 最近更新时间 :04年9月,2018年

图是由节点和边组成的非线性数据结构。节点有时也被称为顶点,而边是连接图中任意两个节点的线或弧。更正式的图可以定义为:

图表由有限一组顶点(或节点)和连接一对节点的一组边缘组成。

在上图中,顶点集合V ={0,1,2,3,4},边集合E ={01, 12, 23, 34, 04, 14, 13}。

图被用来解决许多现实生活中的问题。图用来表示网络。这些网络可以包括城市网络、电话网络或电路网络中的路径。图表也用于社交网络,如linkedIn, Facebook。例如,在Facebook中,每个人都用一个顶点(或节点)表示。每个节点都是一个结构,包含人像id、姓名、性别、语言环境等信息。

简介,DFS和BFS:
  1. 图表及其表示
  2. 宽度的第一个遍历图形
  3. 深度首先遍历图形
  4. 深度优先搜索的应用
  5. 广度优先遍历的应用
  6. 使用集合和哈希的图表表示
  7. 在图表中查找母顶
  8. 使用DFS的图形传递闭合
  9. 找到一个无向图的k核心
  10. 迭代深度首次搜索
  11. 使用BFS计算树中给定级别的节点数
  12. 计算两个顶点之间所有可能的路径
  13. 在给定条件下遍历整个矩阵的最小初始顶点
  14. 通过每次改变一个数字,从一个素数到另一个素数的最短路径
  15. 使用BFS的水壶问题
  16. 数森林中的树数
  17. 按照CLRS算法使用Vectors&Queue的BFS
  18. 来自源节点的Tree中的每个节点的级别
  19. 通过重复安抚和修剪构建二进制回文
  20. 转置图
  21. 带有圆的矩形路径
  22. 父数组中通用树的高度
  23. BFS使用STL进行竞争编码
  24. 一个n元树(无环图)的DFS表示为邻接表
  25. 为使树保持二部图而添加的最大边数
  26. 一个Peterson图问题
  27. 用JavaScript实现图形
  28. 使用BFS将来自给定源的所有路径打印到目的地
  29. 图的两个顶点之间的最小边数
  30. 计数距离集合中所有节点k -距离内的节点
  31. 双向搜索
  32. 最小边缘逆转以制作根
  33. 用于断开连接图的BFS
  34. 在给定的限制下移动加权尺度交替
  35. 最好的第一个搜索(知情搜索)
  36. 矩阵中不可访问的位置对的数目
  37. 树中两条不相交路径的最大积
  38. 删除边缘以最小化子树和差异
  39. 找到从矩阵的一个单元格转向另一个单元所需的最小动作数
  40. 通过骑士到达目标的最低步骤|设置1
  41. 将数字X转换为y所需的最小操作次数
  42. 在约束下到达数组结束的最低步骤
  43. 求给定数的最小二进制数的倍数
  44. 一棵树的根,给出最小高度
  45. 步进数
  46. 克隆一个无向图
  47. 无向图形的所有连接组件中的最小元素的总和
  48. 检查两个节点是否在树中的同一路径上
  49. 矩阵概率问题
  50. 求布尔矩阵中最大区域的长度
  51. 迭代深化搜索(IDS)或迭代深化深度优先搜索(IDDFS)

图周期:

拓扑排序:

最小生成树:

回溯:

最短路径:

连接:



  1. 找出有向图上的两个顶点之间是否有一条路径
  2. 有向图中的连通性
  3. 图中的连接点(或切点)
  4. 均匀的组件
  5. 双连通图
  6. 图中的桥
  7. 欧拉路径和回路
  8. 欧拉路径或电路的弗勒里打印算法
  9. 强连通分量
  10. 图表的传递关闭
  11. 找到岛屿的数量
  12. 找到岛屿的数量|SET 2(使用不相交集)
  13. 计算所有可能从源散到目的地,恰好k边缘
  14. 在定向图中的欧拉电路
  15. 计算不可达节点数
  16. 求图中特定顶点的度
  17. 检查给定的图是否是树
  18. 添加以制作欧拉电路所需的最小边缘
  19. 无向图中的欧拉路径
  20. 查找是否有超过k的路径
  21. 达到目标词的最短链的长度
  22. 打印从给定源到目标的所有路径
  23. 找出使用火车到达目的地的最低成本
  24. 找到可以链接一个字符串数组以形成圆圈|设置1
  25. 找到可以链接一个字符串数组以形成圆圈|套2
  26. 寻找强连接组件的塔扬算法
  27. 从一个特定节点开始的大小为k的循环数
  28. 每条边通过每个节点的路径(Königsberg的Seven Bridges)
  29. 我们可以根据值跳转的阵列中的循环元素数
  30. 在朋友图中形成的群的数量
  31. 将加权节点连接为数组的最低成本
  32. 计数单个节点在断开的图形中隔离子图
  33. 用不相交并集法计算非循环图中两个顶点之间的节点数
  34. Set 1(增量式)
  35. |集1 (Kosaraju使用DFS)
  36. 检查给定的指示图是否强烈连接|设置2(Kosaraju使用BFS)
  37. 检查删除给定的边是否会断开一个图
  38. 从给定集合中的每个节点中找出所有可到达的节点
  39. 无向图中的连通组件
  40. 每个顶点具有重量的图表中的k'th最重的相邻节点

最大流量:

STL算法实现:

难题:

MISC:

快速链接:

如果您发现任何不正确的任何内容,请写出评论,或者您想要共享有关上面讨论主题的更多信息。




我个人的笔记 arrow_drop_up