*graph_adapter()*- Creates an empty graph adapter.

*graph_adapter(const graph_adapter& g)*- Initializes the graph adapter to be a copy of g. This is a deep copy.

*size_type*

num_vertices(const graph_adapter& g)- Returns the number of vertices in g.

*size_type*

num_edges(const graph_adapter& g)- Returns the number of edges in g.

*vertex_descriptor*

get_vertex(size_type i, const graph_adapter& g)- Returns the vertex from g that has id i.

*edge_descriptor*

get_edge(size_type i, const graph_adapter& g)- Returns the edge from g that has id i.

*bool*

is_directed(const graph_adapter& g)- Returns true if a graph is directed.

*bool*

is_undirected(const graph_adapter& g)- Returns true if a graph is undirected.

*bool*

is_bidirectional(const graph_adapter& g)- Returns true if a graph is bidirectional.

*void*

init(size_type n, size_type m, size_type* srcs, size_type* trgs, const graph_adapter& g)- Initializes an empty graph with n vertices and m edges. The vertices will have ids 0 - n-1. The srcs and trgs arrays represent the source and target vertex ids of each edge. The edges will have ids 0 - m-1 in the order they are given in trgs and srcs.

*void*

clear(graph_adapter& g)- Removes all the vertices and edges in the graph.

*graph_adapter&*

operator=(const graph_adapter& g)- Returns a copy of g. This is a deep copy.

*vertex_iterator*

vertices(const graph_adapter& g)- Returns an iterator that iterates over all the vertices in g.

*edge_iterator*

edges(const graph_adapter& g)- Returns an iterator that iterates over all the edges in g.

*adjacency_iterator*

adjacent_vertices(vertex_descriptor v, const graph_adapter& g)- Returns an iterator that iterates over all the vertices adjacent to v via outgoing edges.

*out_edge_iterator*

out_edges(vertex_descriptor v, const graph_adapter& g)- Returns an iterator that iterates over all the outgoing edges of v.

*in_adjacency_iterator*

in_adjacent_vertices(vertex_descriptor v, const graph_adapter& g)- Returns an iterator that iterates over all the vertices adjacent to v via incoming edges.

*in_edge_iterator*

in_edges(vertex_descriptor v, const graph_adapter& g)- Returns an iterator that iterates over all the incoming edges of v.

*vertex_descriptor*

source(const edge_descriptor& e, const graph_adapter& g)- Returns the source vertex of e.

*vertex_descriptor*

target(const edge_descriptor& e, const graph_adapter& g)- Returns the target vertex of e.

*vertex_descriptor*

other(const edge_descriptor& e, const graph_adapter& g)- Returns the vertex of e that is opposite of v.

*size_type*

out_degree(vertex_descriptor v, const graph_adapter& g)- Returns the number of edges leaving v.

*size_type*

in_degree(vertex_descriptor v, const graph_adapter& g)- Returns the number of edges entering v.

*size_type*

degree(vertex_descriptor v, const graph_adapter& g)- Returns the sum of the number of edges leaving v and the number of edges entering v.