心得经验总结:无向图:计算亏格(环的孔洞)

简介: 心得经验总结:无向图:计算亏格(环的孔洞)

前一篇文章:无向图:计算亏格(环的孔洞)

首先,判断图中是否存在环。方法,找到联通子图,循环删除度为1的节点,同时删除边。直到不存在度为1的边,则联通子图只剩下环或者复杂环。

//代码效果参考:http://www.zidongmutanji.com/zsjx/426541.html

在不需要遍历出环的算法里面,可以通过欧拉公//代码效果参考: http://www.zidongmutanji.com/bxxx/203054.html

式直接计算亏格。孔洞的个数。

公式: //代码效果参考:http://www.zidongmutanji.com/bxxx/181028.html

nGenus = l-p+1; l为边的个数,p为点的个数。

过程:对于所有联通的集合,循环删除度数为1的顶点,同时删除边;计算亏格。

然而,上述过程出现了问题。主要是平面图中若严格按照直线边进行拓扑,出现了复杂图,即立体图。

如图:

改进方法:

使用多边形并差计算,以此寻找孔洞,以此来应对复杂图的特殊情况。

代码段:

import seisw.util.geom.Clip;

import seisw.util.geom.Poly;

import seisw.util.geom.PolyDefault;

相关文章
|
3月前
|
算法 Java
数据结构与算法学习六:单向环形链表应用实例的约瑟夫环问题
这篇文章通过单向环形链表的应用实例,详细讲解了约瑟夫环问题的解决方案,并提供了Java代码实现。
32 0
|
7月前
|
存储 算法 C语言
数据结构学习记录——图-最短路径问题(无权图单源最短路径算法、有权图单源最短路径算法、多源最短路径算法、Dijkstra(迪杰斯特拉)算法、Floyd算法)
数据结构学习记录——图-最短路径问题(无权图单源最短路径算法、有权图单源最短路径算法、多源最短路径算法、Dijkstra(迪杰斯特拉)算法、Floyd算法)
116 1
约瑟夫环问题的几种解法
约瑟夫环问题的几种解法
112 0
|
存储 索引
树与图中的dfs和bfs—— AcWing 846. 树的重心 AcWing 847. 图中点的层次
树与图中的dfs和bfs—— AcWing 846. 树的重心 AcWing 847. 图中点的层次
82 0
|
算法 C++
算法基础系列第三章——图论之最短路径问题(2)
算法基础系列第三章——图论之最短路径问题(2)
205 0
算法基础系列第三章——图论之最短路径问题(2)
|
算法 C++
算法基础系列第三章——图论之最短路径问题(1)
算法基础系列第三章——图论之最短路径问题(1)
199 0
算法基础系列第三章——图论之最短路径问题(1)
约瑟夫环的解法
约瑟夫环的解法
131 0
|
算法 C++ Python
BFS逛街算法模板-附LeetCode习题-433. 最小基因变化-广度优先搜索
BFS逛街算法模板-附LeetCode习题-433. 最小基因变化-广度优先搜索
|
存储 算法 Python
最小生成树的本质是什么?Prim算法道破天机
云栖号资讯:【点击查看更多行业资讯】在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来! 从边到点 我们简单回顾一下Kruskal算法的原理,虽然上篇文章当中用了很多篇幅,但是原理非常简单。
最小生成树的本质是什么?Prim算法道破天机