Bibliotecas que implementam grafos
Rosivaldo F. Gomes Júnior
LEDA (Library of E_cient Data types and Algorithms)
Biblioteca comercial em C++ com um rico conjunto de algoritmos e estruturas de dados relacionados a grafos, redes, geometria, otimização combinatorial, entre outros temas. A implementação dos algoritmos é dependente da representação de dados fornecida pela biblioteca. Possibilita parametrização de vértices e arestas do grafo através da inclusão de propriedades adicionais. Oferece alguns algoritmos relacionados à área de desenho de grafos a partir de sua própria interface gráfica. Código fonte fechado, o que difculta extensão e reutilização.
Exemplo: Estrutura de dados de grafo para entrada de Experimentação de Grafos Isomórficos.
leda::graph, leda::GRAPH, leda::static_graph
NetworkX:
É uma biblioteca gratuita para estudos de grafos e redes. Apresenta conversão de grafos para vários formatos, criação de grafos aleatórios, procura de sub-grafos e cliques. Explora adjacências, graus. Desenha redes em 2D e 3D.
Exemplo: Criação
import networkx as nx
G=nx.Graph()
G.add_node("spam")
G.add_edge(1,2) print G.nodes()
[1, 2, 'spam'] print G.edges()
[(1, 2)]
JGraph
JGraph é um gráfico de desenho de componentes de software de código aberto escrito na linguagem de programação Java, iniciados por Gaudenz Alder como um projeto da Universidade, em 2000, na ETH Zurich, na Suíça.
Exemplo: Achar a localização de uma célula:
DefaultGraphCell cell = jGraph.getSelectionCell();
CellView cellView = jGraph.getGraphLayoutCache().getMapping(cell, true); int x = (int) cellView.getBounds().getX(); int y = (int) cellView.getBounds().getY();
System.out.println("A célula selecionada está no ponto: " + x + "/" +