Version: 1.0
Public Member Functions | Public Attributes | List of all members
RemoveEqualSubtrees Struct Reference

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
 

Detailed Description

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.

Constructor & Destructor Documentation

◆ RemoveEqualSubtrees()

RemoveEqualSubtrees::RemoveEqualSubtrees ( BinaryDrag< conact > &  bd)
inline

Definition at line 27 of file remove_equal_subtrees.h.

Member Function Documentation

◆ RemoveEqualSubtreesRec()

std::string RemoveEqualSubtrees::RemoveEqualSubtreesRec ( BinaryDrag< conact >::node *&  n)
inline

Definition at line 33 of file remove_equal_subtrees.h.

Member Data Documentation

◆ leaves_

uint RemoveEqualSubtrees::leaves_ = 0

Definition at line 25 of file remove_equal_subtrees.h.

◆ nodes_

uint RemoveEqualSubtrees::nodes_ = 0

Definition at line 25 of file remove_equal_subtrees.h.

◆ ps_

std::unordered_map<BinaryDrag<conact>::node*, std::string> RemoveEqualSubtrees::ps_

Definition at line 24 of file remove_equal_subtrees.h.

◆ sp_

std::unordered_map<std::string, BinaryDrag<conact>::node*> RemoveEqualSubtrees::sp_

Definition at line 23 of file remove_equal_subtrees.h.


The documentation for this struct was generated from the following file: