User Documentation
Centre for Vision, Speech & Signal Processing
DEVELOP IN NAMESPACE AMMA TREE ROOT AMMA SEARCH AMMA HOME
 

  PUBLIC
DAGraphC::DAGraphC(void)
DAGraphC::DAGraphC(const DAGraphC &)
DAGraphC::Copy(void)
DAGraphC::InsNode(const NodeT &)
DAGraphC::TryEdge(GraphNodeIterC,GraphNodeIterC)
DAGraphC::InsEdge(GraphNodeIterC,GraphNodeIterC,const EdgeT &)
GraphTC::Copy(void)
GraphTC::Copy(HashARC &)
GraphTC::operator=(const GraphTC &)
GraphTC::InsNode(const NodeT &)
GraphTC::InsEdge(NodeIter &,NodeIter &,const EdgeT &)
GraphTC::InsEdge(const GraphNodeHC &,const GraphNodeHC &,const EdgeT &)
GraphTC::NoNodes(void) const
GraphTC::NoEdges(void) const
GraphTC::IsCyclic(void)
GraphTC::DebugPrint(ostream &) const
GraphTC::Copy(HashARC,GraphNodeIterC> &)
GraphTC::InsEdge(GraphNodeIterC &,GraphNodeIterC &,const EdgeT &)
DAGraphC<class NodeT,class EdgeT>
 
Directed graph.
 
include "amma/DAGraph.hh"
User Level:Default
Library:Mgraph
Example:exBiHash.cc
Section:Containers.Graphs
In Scope:std

Comments:
Graph node data must inherit from DAGraphMarkerC.

Parent Classes: Methods:
DAGraphC()
Creates an empty directed graph.

DAGraphC(const DAGraphC<NodeT,EdgeT> & g)
Creates an new access to the directed graph.

DAGraphC<NodeT,EdgeT> Copy()
Copy graph.

GraphNodeIterC<NodeT,EdgeT> InsNode(const NodeT & Dat)
Inserts one node to the graph. Returns the node iterator.

BooleanT TryEdge(GraphNodeIterC<NodeT,EdgeT> fromNode,GraphNodeIterC<NodeT,EdgeT> toNode)
Can edge be added added to graph without adding a cycle ?

GraphEdgeIterC<NodeT,EdgeT> InsEdge(GraphNodeIterC<NodeT,EdgeT> fromNode,GraphNodeIterC<NodeT,EdgeT> toNode,const EdgeT & Dat)
Inserts one egde to the graph. Returns the edge iterator.

#include "amma/GraphT.hh"
GraphTC<NodeT,EdgeT> Copy()
Make a copy of this graph.

GraphTC<NodeT,EdgeT> Copy(HashARC<NodeIter,NodeIter> & NodeMap)
Make a copy of this graph.
The mapping between new and old nodes is in NodeMap.

const GraphTC<NodeT,EdgeT> & operator=(const GraphTC<NodeT,EdgeT> & g)
Creates another access to the graph 'g'.
The assigment does not change the content of the graph 'g', but its reference counting. However, the content of the graph 'g' can be changed through the this new access later. Creation of the structure of the graph. ---------------------------------------

GraphNodeIterC<NodeT,EdgeT> InsNode(const NodeT & Dat)
Inserts one node to the graph.
Returns the node iterator pointing to the new element.

GraphEdgeIterC<NodeT,EdgeT> InsEdge(NodeIter & fromNode,NodeIter & toNode,const EdgeT & Dat)
Inserts one egde to the graph.
Returns an edge iterator pointing to the new element.

GraphEdgeIterC<NodeT,EdgeT> InsEdge(const GraphNodeHC<NodeT,EdgeT> & fromNode,const GraphNodeHC<NodeT,EdgeT> & toNode,const EdgeT & Dat)
Inserts one egde to the graph.
Returns an edge iterator pointing to the new element.

UIntT NoNodes() const
Count the number of nodes in the graph.
This actuall iterates through the list and is slow.

UIntT NoEdges() const
Count the number of edges in the graph.
This actuall iterates through the list and is slow. Tests on graph structure. ---------------------------------------

BooleanT IsCyclic()
Test if a directed graph contains cycles.

void DebugPrint(ostream & s) const
Prints markers and addresses of all nodes and edges of this graph.

GraphTC<NodeT,EdgeT> Copy(HashARC<GraphNodeIterC<NodeT,EdgeT>,GraphNodeIterC<NodeT,EdgeT>> & NodeMap)
///////////////////////////// Inserts one node to the graph. Returns the node iterator.

GraphEdgeIterC<NodeT,EdgeT> InsEdge(GraphNodeIterC<NodeT,EdgeT> & fromNode,GraphNodeIterC<NodeT,EdgeT> & toNode,const EdgeT & Dat)


Programmer:Charles Galambos, Documentation by CxxDoc: Tue Mar 20 10:48:08 2001