6 #ifndef FSM_TREES_TREENODE_H_
7 #define FSM_TREES_TREENODE_H_
13 #include "trees/IOListContainer.h"
14 #include "trees/TreeEdge.h"
16 class TreeNode :
public std::enable_shared_from_this<TreeNode>
27 std::shared_ptr<std::vector<std::shared_ptr<TreeEdge>>>
children;
35 void add(std::vector<int>::const_iterator lstIte,
const std::vector<int>::const_iterator end);
46 void setParent(
const std::weak_ptr<TreeNode> parent);
52 std::weak_ptr<TreeNode>
getParent()
const;
73 std::shared_ptr<std::vector<std::shared_ptr<TreeEdge>>>
getChildren()
const;
79 void remove(
const std::shared_ptr<TreeNode> node);
85 void calcLeaves(std::vector<std::shared_ptr<TreeNode>>& leaves);
91 void add(
const std::shared_ptr<TreeEdge> edge);
105 int getIO(
const std::shared_ptr<TreeNode> node)
const;
112 std::shared_ptr<TreeEdge>
hasEdge(
const std::shared_ptr<TreeEdge> edge)
const;
125 bool superTreeOf(
const std::shared_ptr<TreeNode> otherNode)
const;
145 std::shared_ptr<TreeNode> add(
const int x);
172 std::shared_ptr<TreeNode>
after(std::vector<int>::const_iterator lstIte,
const std::vector<int>::const_iterator end);
174 #endif //FSM_TREES_TREENODE_H_
bool isLeaf() const
Definition: TreeNode.cpp:95
std::shared_ptr< std::vector< std::shared_ptr< TreeEdge > > > getChildren() const
Definition: TreeNode.cpp:57
void calcLeaves(std::vector< std::shared_ptr< TreeNode >> &leaves)
Definition: TreeNode.cpp:74
Definition: TreeNode.h:16
bool isDeleted() const
Definition: TreeNode.cpp:52
std::shared_ptr< TreeEdge > hasEdge(const std::shared_ptr< TreeEdge > edge) const
Definition: TreeNode.cpp:112
Definition: IOListContainer.h:15
friend bool operator==(TreeNode const &treeNode1, TreeNode const &treeNode2)
Definition: TreeNode.cpp:175
std::weak_ptr< TreeNode > getParent() const
Definition: TreeNode.cpp:19
void addToThisNode(const IOListContainer &tcl)
Definition: TreeNode.cpp:282
void setParent(const std::weak_ptr< TreeNode > parent)
Definition: TreeNode.cpp:14
std::shared_ptr< std::vector< std::shared_ptr< TreeEdge > > > children
Definition: TreeNode.h:27
std::vector< int > getPath()
Definition: TreeNode.cpp:124
std::weak_ptr< TreeNode > parent
Definition: TreeNode.h:22
bool deleted
Definition: TreeNode.h:32
std::shared_ptr< TreeNode > after(std::vector< int >::const_iterator lstIte, const std::vector< int >::const_iterator end)
Definition: TreeNode.cpp:292
void deleteNode()
Definition: TreeNode.cpp:24
TreeNode()
Definition: TreeNode.cpp:8
bool superTreeOf(const std::shared_ptr< TreeNode > otherNode) const
Definition: TreeNode.cpp:141
int getIO(const std::shared_ptr< TreeNode > node) const
Definition: TreeNode.cpp:100