A library for working with Graphs in Julia.
3 Stars
Updated Last
2 Years Ago
Started In
February 2013



The Networks package is a library for working with Graphs in Julia. A Networks.jl Graph is a datastructure where the nodes and edges can be arbitrary Julia types, with the only restriction that nodes should be hashable. This allows the user to use meaningful types as nodes and edges. The design is borrowed from the Python NetworkX package

The Graph type

The Graph type is used to represent undirected graphs. It has one field, named adj, which is of type Dict{Any, Dict{Any, Any}}. The keys of adj correspond to the nodes of the graph (this is why node objects should be hashable), and the values consist of other dictionaries containing the incident node objects (as keys) and edge objects (as values). If g is a graph containing both nodes u and v, then we always have that g[u][v] is equal to g[v][u].


	using Networks

	g = Graph()

	addnode!(g, 1)
	# Here we use an ASCIIString object as node
	addnode!(g, "test")
	addedge!(g, 1, "test")
	# Nonexistend nodes will be added automatically
	addedge!(g, 'a', 'b')
	addcycle!(g, 5:10)

	# Show the graph g