![]() |
Version: 1.0 |
This class allows to "remove" equal subtrees from a BinaryDrag. More...
#include <remove_equal_subtrees.h>
Public Member Functions | |
RemoveEqualSubtrees (BinaryDrag< conact > &bd) | |
std::string | RemoveEqualSubtreesRec (BinaryDrag< conact >::node *&n) |
Public Attributes | |
std::unordered_map< std::string, BinaryDrag< conact >::node * > | sp_ |
std::unordered_map< BinaryDrag< conact >::node *, std::string > | ps_ |
uint | nodes_ = 0 |
uint | leaves_ = 0 |
This class allows to "remove" equal subtrees from a BinaryDrag.
The class updates the input BinaryDrag itself so there is no need to build a non temporary object. Thus you can do: RemoveEqualSubtrees{bd}. The recursive procedure to find equal subtrees exploit memoization so it is quite efficient. Please note that the removal of equal subtrees is performed updating the links but nodes are not actually deleted.
Definition at line 22 of file remove_equal_subtrees.h.
|
inline |
Definition at line 27 of file remove_equal_subtrees.h.
|
inline |
Definition at line 33 of file remove_equal_subtrees.h.
uint RemoveEqualSubtrees::leaves_ = 0 |
Definition at line 25 of file remove_equal_subtrees.h.
uint RemoveEqualSubtrees::nodes_ = 0 |
Definition at line 25 of file remove_equal_subtrees.h.
std::unordered_map<BinaryDrag<conact>::node*, std::string> RemoveEqualSubtrees::ps_ |
Definition at line 24 of file remove_equal_subtrees.h.
std::unordered_map<std::string, BinaryDrag<conact>::node*> RemoveEqualSubtrees::sp_ |
Definition at line 23 of file remove_equal_subtrees.h.