Modifying Graph Properties
Subtypes of AbstractValGraph are not by default modifiable, but ValGraph, ValOutDiGraph and ValDiGraph are. Modifiable graphs may implement some of the methods here.
Modifying vertices
To add a vertex, use the add_vertex method. If the graph has vertex values, they must also be passed to this function.
julia> g2 = ValGraph(0, vertexval_types=(a=Int, ), vertexval_init=undef);
julia> add_vertex!(g2, (a=50,))
true
julia> g1 = ValGraph(4);
julia> add_vertex!(g1)
true
julia> g2 = ValGraph(0, vertexval_types=(a=Int, ), vertexval_init=undef);
julia> add_vertex!(g2, (a=50,))
trueVertex values can be set using the set_vertexval! function.
julia> g = ValGraph(5, vertexval_types=(a=Int, String), vertexval_init=undef);
julia> set_vertexval!(g, 1, :a, 50)
trueModifying edges
To add an edge, one can use the add_edge! method. As with vertices, if the graph has edge values, one must pass them to the function. If the edge already exists in that graph, it will change them to the new values.
julia> g = ValDiGraph(5, edgeval_types=(Int,));
julia> add_edge!(g, 1, 2, (10,))
true
julia> add_edge!(g, 1, 2, (20,))
false
julia> get_edgeval(g, 1, 2, :)
(20,)One can remove edges using the rem_edge! function.
julia> g = ValDiGraph(5, edgeval_types=(Int,));
julia> add_edge!(g, 1, 2, (10,))
true
julia> ne(g)
1
julia> rem_edge!(g, 1, 2)
true
julia> ne(g)
0To modify edge values, one can use the set_edgeval! function
julia> g = ValDiGraph(5, edgeval_types=(a=Int,b=String));
julia> add_edge!(g, 1, 2, (a=10, b="xyz"))
true
julia> set_edgeval!(g, 1, 2, :a, 20)
true
julia> set_edgeval!(g, 1, 2, :, (30, "abc"))
true