Skip to the content.

Grafo Base

Esse é o grafo que todos os outros grafos vão herdar suas características/métodos.

Esse grafo não possui nenhum tipo de restrição. Pois todos os outros grafos irão sobrescrever os métodos necessários para aplicar suas restrições.

Importar:

from py_graph_t import Graph

Métodos:

Método Parâmetros O que faz ? Retorno
add_vertex value Método que adiciona um vértice ao grafo. SimpleVertex adicionado
delete_vertex value Método que remove um vertice do grafo e consequentemente todas as arestas conectadas ao vertice. SimpleVertex removido
add_edge value_a, value_b, name(opcional) Método que adiciona uma aresta ao grafo. SimpleEdge adicionado.
delete_edge value_a, value_b Método que remove uma aresta do grafo. SimpleEdge removido.
show_edge value_a, value_b Método que retorna uma aresta entre dois vértices, se ela existe. SimpleEdge.
is_terminal edge, value Método que verifica se um dado vértice é terminal de uma dada aresta. Boolean
num_vertex Método que retorna o número de vértices no grafo. Integer
num_edges Método que retorna o número de arestas no grafo. Integer
vertex_exists value Método que indica se um determinado vértice pertence ao Grafo. Boolean
edge_exists value_a, value_b Método que indica se uma determinada aresta pertence ao Grafo. Boolean
vertex_neighbors value Método que encontra vertices vizinhos do vertice de entrada. List
vertex_degree value Método que retorna o grau do vértice de entrada. Integer
is_vertices_adjacents value_a, value_b Método que indica se os vértices de entrada são adjacentes. Boolean
get_all_vertex Método que retorna uma lista com os vértices do grafo. List
list_graph_vertices Método que retorna lista com todos os identificadores dos vértices do grafo. List
list_graph_edges Método que retorna lista com todos os nomes as arestas do grafo. List
cycle v, visited, parent Método que verifica se tem ciclo no subgrafo a partir do vértice v. Boolean
has_cycle Método que verifica se o grafo possui um ciclo. Loops também são detectados. Boolean
has_loop Método que verifica se o grafo possui um loop. Boolean
check_regular_graph Método que verifica a regularidade de um grafo. Boolean
incidence_list Método que retorna uma lista de objetos que contem a incidencia dos vertices com as arestas. List
adjacency_matrix Método que retorna a representação em forma de matriz de adjacência do grafo. Dict
__str__ Método que retorna a representação textual do grafo. String

Exemplos de uso:

Não faz muito sentido ter um grafo como esse, ele existe na biblioteca apenas para servir para reuso.

Adicionar um vértice

grafo = Graph()
grafo.add_vertex("a")
grafo.add_vertex("b")
grafo.add_vertex("c")

Deletar um vértice

grafo = Graph()
grafo.delete_vertex("a")
grafo.delete_vertex("b")
grafo.delete_vertex("c")

Adicionar uma aresta

grafo = Graph()
grafo.add_vertex("a")
grafo.add_vertex("b")
grafo.add_edge("a", "b", name="Aresta AB")
grafo.add_edge("b", "a", name="Aresta BA")
grafo.add_edge("a", "a", name="Aresta AA")

Deletar uma aresta

grafo = Graph()
grafo.add_vertex("a")
grafo.add_vertex("b")
grafo.add_edge("a", "b", name="Aresta AB")
grafo.add_edge("b", "a", name="Aresta BA")
grafo.add_edge("a", "a", name="Aresta AA")
grafo.delete_edge("a", "a")

Visualizar aresta

grafo = Graph()
grafo.add_vertex("a")
grafo.add_vertex("b")
grafo.add_edge("a", "b", name="Aresta AB")
grafo.add_edge("b", "a", name="Aresta BA")
grafo.add_edge("a", "a", name="Aresta AA")
print(grafo.show_edge("a", "b"))

Verificar se um vértice é terminal de uma aresta

grafo = Graph()
grafo.add_vertex("a")
grafo.add_vertex("b")
grafo.add_edge("a", "b", name="Aresta AB")
grafo.add_edge("b", "a", name="Aresta BA")
grafo.add_edge("a", "a", name="Aresta AA")
edge = grafo.show_edge("a", "b")
grafo.is_terminal(edge, "b")
grafo.is_terminal(edge, "a")

Número de vértices

grafo = Graph()
grafo.add_vertex("a")
grafo.add_vertex("b")
print(grafo.num_vertex())

Número de arestas

grafo = Graph()
grafo.add_vertex("a")
grafo.add_vertex("b")
grafo.add_edge("a", "b", name="Aresta AB")
grafo.add_edge("b", "a", name="Aresta BA")
print(grafo.num_edges())

Verifica se um vértice existe

grafo = Graph()
grafo.add_vertex("a")
grafo.add_vertex("b")
print(grafo.vertex_exists("a"))

Verifica se uma aresta existe

grafo = Graph()
grafo.add_vertex("a")
grafo.add_vertex("b")
grafo.add_edge("a", "b", name="Aresta AB")
print(grafo.edge_exists("a", "b"))

Vizinhos de um vértice

grafo = Graph()
grafo.add_vertex("a")
grafo.add_vertex("b")
grafo.add_edge("a", "b", name="Aresta AB")
grafo.add_edge("b", "a", name="Aresta BA")
print(grafo.vertex_neighbors("a"))

Grau do vértice

grafo = Graph()
grafo.add_vertex("a")
grafo.add_vertex("b")
grafo.add_edge("a", "b", name="Aresta AB")
grafo.add_edge("b", "a", name="Aresta BA")
print(grafo.vertex_degree("a"))

Verifica se os vértices são adjacentes

grafo = Graph()
grafo.add_vertex("a")
grafo.add_vertex("b")
grafo.add_edge("a", "b", name="Aresta AB")
grafo.add_edge("b", "a", name="Aresta BA")
print(grafo.is_vertices_adjacents("a", "b"))

Lista dos vértices do grafo

grafo = Graph()
grafo.add_vertex("a")
grafo.add_vertex("b")
print(grafo.get_all_vertex())

Lista com todos os identificadores dos vértices

grafo = Graph()
grafo.add_vertex("a")
grafo.add_vertex("b")
print(grafo.list_graph_vertices())

Lista com os nomes das arestas

grafo = Graph()
grafo.add_vertex("a")
grafo.add_vertex("b")
print(grafo.get_all_vertex())
grafo.add_edge("a", "b", name="Aresta AB")
grafo.add_edge("b", "a", name="Aresta BA")
print(grafo.list_graph_edges())

Verifica se um grafo possui ciclos, loops também são detectados

grafo = Graph()
grafo.add_vertex("a")
grafo.add_vertex("b")
grafo.add_edge("a", "b", name="Aresta AB")
grafo.add_edge("b", "a", name="Aresta BA")
print(grafo.has_cycle())

Verifica se um grafo possui um loop

grafo = Graph()
grafo.add_vertex("a")
grafo.add_vertex("b")
grafo.add_edge("a", "b", name="Aresta AB")
grafo.add_edge("b", "a", name="Aresta BA")
print(grafo.has_loop())

Verifica a regularidade de um grafo

grafo = Graph()
grafo.add_vertex("a")
grafo.add_vertex("b")
grafo.add_edge("a", "b", name="Aresta AB")
grafo.add_edge("b", "a", name="Aresta BA")
print(grafo.check_regular_graph())

Incidência de um grafo

grafo = Graph()
grafo.add_vertex("a")
grafo.add_vertex("b")
grafo.add_edge("a", "b", name="Aresta AB")
grafo.add_edge("b", "a", name="Aresta BA")
print(grafo.incidence_list())

Adjacência de um grafo

grafo = Graph()
grafo.add_vertex("a")
grafo.add_vertex("b")
grafo.add_edge("a", "b", name="Aresta AB")
grafo.add_edge("b", "a", name="Aresta BA")
print(grafo.adjacency_matrix())

Representação textual

grafo = Graph()
grafo.add_vertex("a")
grafo.add_vertex("b")
grafo.add_edge("a", "b", name="Aresta AB")
grafo.add_edge("b", "a", name="Aresta BA")
print(grafo.__str__())