예제 #1
0
    def hamiltonCycleAllPath(self):

        minPath = Path()
        for top in self.__tops:
            path = Path()
            path.addTop(top)
            self.__allPath(top, path, minPath)

        return minPath
예제 #2
0
    def __checkPermutation(self, _tops):

        path = Path()
        for i in range(len(_tops)):
            path.addTop(_tops[i])

            if i != 0:
                if _tops[i - 1].isArcTo(_tops[i]):
                    path.addArc(_tops[i - 1].getArcTo(_tops[i]))
                else:
                    return None

        if path.isCycle():
            return path
        else:
            return None