41 #ifndef BPP_GRAPH_DAGRAPH_H
42 #define BPP_GRAPH_DAGRAPH_H
50 #include "../Exceptions.h"
51 #include "../Numeric/VectorTools.h"
virtual std::vector< Graph::NodeId > getLeavesUnderNode(Graph::NodeId node) const =0
virtual size_t getNumberOfSons(Graph::NodeId node) const =0
Get the number of sons node.
virtual void rootAt(Graph::NodeId newRoot)=0
virtual std::vector< Graph::EdgeId > getBelowEdges(Graph::NodeId localRoot) const =0
virtual std::vector< Graph::NodeId > getFathers(Graph::NodeId node) const =0
virtual void removeFather(Graph::NodeId node, Graph::NodeId father)=0
virtual void removeSon(Graph::NodeId node, Graph::NodeId son)=0
virtual std::vector< Graph::NodeId > removeFathers(Graph::NodeId node)=0
void addSon(Graph::NodeId node, Graph::NodeId sonNode)
virtual std::vector< Graph::NodeId > getSons(Graph::NodeId node) const =0
virtual std::vector< Graph::NodeId > getBelowNodes(Graph::NodeId localRoot) const =0
virtual void addFather(Graph::NodeId node, Graph::NodeId father, Graph::EdgeId edgeId)=0
virtual size_t getNumberOfFathers(Graph::NodeId node) const =0
Get the number of fathers nodes.
virtual std::vector< Graph::NodeId > removeSons(Graph::NodeId node)=0
virtual void addFather(Graph::NodeId node, Graph::NodeId father)=0
virtual bool hasFather(Graph::NodeId node) const =0
void addSon(Graph::NodeId node, Graph::NodeId sonNode, Graph::EdgeId edge)
virtual bool isValid() const =0
virtual bool isRooted() const =0