我有一张有向图。 (确切地说)一个开头和一个结尾。我需要找到那些从头到尾访问每个可能路径的顶点。
缓慢的方法将经历每一条可能的路径,并且我访问的每个顶点都是+1。总访问次数与开头(或结尾)相同的所有顶点都是我正在寻找的顶点。
我需要知道这是为了在我正在编写的编译器中进行优化。我想知道所有控制流路径的合并位置。
如果有人能指出这种算法的正确名称,那就已经有所帮助了。 (因为我对图论的了解不是很好)
答案 0 :(得分:0)
我刚刚意识到它实际上非常简单。 由于我的图已经拓扑排序。我旅行(排序),添加每个"分支"到列表。在每个顶点我首先删除所有"分支"来到这个顶点,如果没有更多"分支",所有路径都会访问这个顶点。