44 class NeighborIterator;
157 std::string
toDot(
size_t name)
const;
257 #ifndef GUM_NO_INLINE 259 #endif // GUM_NO_INLINE EdgeCode & edgeCode(NodeId tail, NodeId head)
Returns the EdgeCode of an edge of this Pattern.
virtual void addArc(const NodeId tail, const NodeId head)
insert a new arc into the directed graph
Copyright 2005-2019 Pierre-Henri WUILLEMIN et Christophe GONZALES (LIP6) {prenom.nom}_at_lip6.fr.
Inner class to handle data about labels in this interface graph.
Pattern()
Default constructor.
ArcProperty< std::pair< LabelData *, EdgeCode *> > __arc_map
Mapping between edges in this Pattern and their respective LabelData.
DFSCode & code()
Returns the DFSCode of this Pattern.
NodeId addNodeWithLabel(LabelData &l)
Insert a node with the given LabelData.
bool __expandCodeIsMinimal(NodeId u, NodeId v)
Returns true if the expand code by adding and edge betwenne u and v is minimal with respect to __code...
Reprensent a Depth First Search coding of a graph.
bool isMinimal()
Returns the DFSCode of this Pattern.
Copyright 2005-2019 Pierre-Henri WUILLEMIN et Christophe GONZALES (LIP6) {prenom.nom}_at_lip6.fr.
virtual NodeId addNode()
insert a new node and return its id
The class for generic Hash Tables.
LabelData & label(NodeId node)
Returns the LabelData assigned to node.
represent a DFS code used by gspan.
Size size() const
Returns the number of nodes in this Pattern.
The base class for all directed edgesThis class is used as a basis for manipulating all directed edge...
const NodeSet & parents(const NodeId id) const
returns the set of nodes with arc ingoing to a given node
Base class for all oriented graphs.
NodeProperty< LabelData *> __node_map
Mapping between nodes in this Pattern and their respective LabelData.
virtual const std::string toDot() const
to friendly display the content of the graph in the DOT syntax
Set of pairs of elements with fast search for both elements.
bool __not_rec(Pattern &p, Bijection< NodeId, NodeId > &node_map, NodeId u, NodeId v)
A non recursive bugged version of __rec.
Class for node sets in graph.
LabelData & lastAdded()
Insert a node with the given LabelData.
const NodeGraphPart & nodes() const
void rightmostPath(std::list< NodeId > &r_path) const
Fill r_path with the rightmost path of this Pattern. The list is supposed empty.
LabelData * __last
The last LabelData added to this pattern.
const ArcSet & arcs() const
bool __rec(Pattern &p, Bijection< NodeId, NodeId > &node_map, NodeId u, NodeId v)
Recurisve method used by __expandCodeIsMinimal.
void pop_back()
Remove the last EdgeCode of this pattern.
Copyright 2005-2019 Pierre-Henri WUILLEMIN et Christophe GONZALES (LIP6) {prenom.nom}_at_lip6.fr.
const NodeSet & children(const NodeId id) const
returns the set of nodes with arc outgoing from a given node
DFSCode __code
The DFSCode of this Pattern.
Copyright 2005-2019 Pierre-Henri WUILLEMIN et Christophe GONZALES (LIP6) {prenom.nom}_at_lip6.fr.
void addArc(NodeId i, NodeId j, LabelData &l)
Add an arc to this Pattern.
bool exists(NodeId id) const
Returns true if id is a node in this Pattern.
std::size_t Size
In aGrUM, hashed values are unsigned long int.
Copyright 2005-2019 Pierre-Henri WUILLEMIN et Christophe GONZALES (LIP6) {prenom.nom}_at_lip6.fr.
Size sizeArcs() const
Returns the number of arcs in this Pattern.
This contains all the information we want for a node in a DFSTree.
Size NodeId
Type for node ids.