def findJordanCenter(matrix): if not isTree(matrix): print("Nie jest to drzewo") return tree_size = len(matrix) if tree_size < 3: vertexes = [i for i in range(tree_size)] return vertexes tree = Graph(tree_size) tree.buildFromMatrix(matrix) vertexes = [i for i in range(tree_size)] vertexes_left_size = len(vertexes) # max length of the center is 2 while vertexes_left_size > 2: for vertex in list(vertexes): degree = tree.findVertexDegree(vertex) print("Wierzchołek: ", vertex, " Stopien: ", degree) if degree == 1: print("Liśc: ", vertex) tree.removeEdgesAssociatedToVertex(vertex) # removing leaves vertexes.remove(vertex) vertexes_left_size = len(vertexes) print("Centrum Jordana: ", vertexes) return vertexes
def searchCycle(matrix): size = len(matrix) graph = Graph(size) graph.buildFromMatrix(matrix) min_graph_degree = graph.findMinGraphDegree() if min_graph_degree < 2: print("Za niski minimalny stopień grafu") return else: vertexes = [] cycle = DFS(matrix, 0, vertexes, min_graph_degree) print("Cykl: ", cycle) return