Trait rs_graph::graph::Graph
[−]
[src]
pub trait Graph<'a> where
Self: Sized, { type Node: 'a + Node; type Edge: 'a + Edge; type NodeIter: 'a + Iterator<Item = Self::Node>; type EdgeIter: 'a + Iterator<Item = Self::Edge>; type NeighIter: 'a + Iterator<Item = (Self::Edge, Self::Node)>; fn num_nodes(&self) -> usize; fn num_edges(&self) -> usize; fn enodes(&'a self, e: Self::Edge) -> (Self::Node, Self::Node); fn nodes(&'a self) -> Self::NodeIter; fn edges(&'a self) -> Self::EdgeIter; fn neighs(&'a self, u: Self::Node) -> Self::NeighIter; }
Trait for a general undirected graph.
Associated Types
type Node: 'a + Node
Type of a node.
type Edge: 'a + Edge
Type of an edge.
type NodeIter: 'a + Iterator<Item = Self::Node>
Type of an iterator over all nodes.
type EdgeIter: 'a + Iterator<Item = Self::Edge>
Type of an iterator over all edges.
type NeighIter: 'a + Iterator<Item = (Self::Edge, Self::Node)>
Type of an iterator over incident edges.
Required Methods
fn num_nodes(&self) -> usize
Return the number of nodes.
fn num_edges(&self) -> usize
Return the number of edges.
fn enodes(&'a self, e: Self::Edge) -> (Self::Node, Self::Node)
Return the nodes connected by an edge.
The order of the nodes is undefined.
fn nodes(&'a self) -> Self::NodeIter
Return an iterator over all nodes.
fn edges(&'a self) -> Self::EdgeIter
Return an iterator over all edges.
This iterator traverses only the forward edges.
fn neighs(&'a self, u: Self::Node) -> Self::NeighIter
Return an iterator over the edges adjacent to some node.
This iterator traverses only the forward edges.
Implementations on Foreign Types
impl<'a, G> Graph<'a> for &'a G where
G: Graph<'a>,
[src]
G: Graph<'a>,
type Node = G::Node
type Edge = G::Edge
type NodeIter = G::NodeIter
type EdgeIter = G::EdgeIter
type NeighIter = G::NeighIter
fn num_nodes(&self) -> usize
[src]
fn num_edges(&self) -> usize
[src]
fn enodes(&'a self, e: Self::Edge) -> (Self::Node, Self::Node)
[src]
fn nodes(&'a self) -> Self::NodeIter
[src]
fn edges(&'a self) -> Self::EdgeIter
[src]
fn neighs(&'a self, u: Self::Node) -> Self::NeighIter
[src]
Implementors
impl<'a, G> Graph<'a> for ReverseDigraph<G> where
G: Graph<'a>, type Node = G::Node; type Edge = G::Edge; type NodeIter = G::NodeIter; type EdgeIter = G::EdgeIter; type NeighIter = G::NeighIter;impl<'a, G, Gx, Nx, Ex, Ax> Graph<'a> for Attributed<G, Gx, Nx, Ex, Ax> where
G: Graph<'a>,
Gx: Default,
Nx: Default,
Ex: Default,
Ax: Default, type Node = <G as Graph<'a>>::Node; type Edge = <G as Graph<'a>>::Edge; type NodeIter = <G as Graph<'a>>::NodeIter; type EdgeIter = <G as Graph<'a>>::EdgeIter; type NeighIter = <G as Graph<'a>>::NeighIter;impl<'a, ID> Graph<'a> for LinkedListGraph<ID> where
ID: 'a + PrimInt + Unsigned, type Node = Node<ID>; type Edge = Edge<ID>; type NodeIter = NodeIter<ID>; type EdgeIter = EdgeIter<ID>; type NeighIter = NeighIter<'a, ID>;