45#include <lal/definitions.hpp>
46#include <lal/graphs/free_tree.hpp>
47#include <lal/generate/tree_generator.hpp>
48#include <lal/internal/data_array.hpp>
177 internal::data_array<bool>
m_sm;
Base class for tree generators.
Definition tree_generator.hpp:87
tree_type_t get_tree() noexcept
Definition tree_generator.hpp:146
void activate_all_postprocessing_actions() noexcept
Definition tree_generator.hpp:192
const uint32_t m_n
Definition tree_generator.hpp:245
Exhaustive enumeration of labelled free trees.
Definition all_lab_free_trees.hpp:99
uint32_t m_it
Iterator on the sequence.
Definition all_lab_free_trees.hpp:171
bool end() const noexcept
Returns true if the end of the iteration was reached.
Definition all_lab_free_trees.hpp:126
graphs::free_tree yield_tree() noexcept
Yields a tree, advancing the generator if necessary.
Definition all_lab_free_trees.hpp:146
~all_lab_free_trees()=default
Default destructor.
uint32_t m_L
Left-most position with value .
Definition all_lab_free_trees.hpp:173
void reset() noexcept
Sets the generator to its initial state.
Definition all_lab_free_trees.hpp:140
internal::data_array< bool > m_sm
If sm[i] = true iff sm[0..i-1] = true and seq[0..i] = n-2.
Definition all_lab_free_trees.hpp:177
bool m_reached_end
Has the end of the generation been reached?
Definition all_lab_free_trees.hpp:179
internal::data_array< uint32_t > m_Prufer_seq
Prüfer sequence.
Definition all_lab_free_trees.hpp:175
bool has_next() const noexcept
Returns whether there are more trees to generate.
Definition all_lab_free_trees.hpp:165
graphs::free_tree __get_tree() noexcept
Constructs the current tree.
all_lab_free_trees(uint32_t n) noexcept
Constructor with number of nodes.
all_lab_free_trees(const all_lab_free_trees &Gen)=default
Copy constructor.
void next() noexcept
Generates next tree.
void __reset() noexcept
Sets the generator to its initial state.
all_lab_free_trees(all_lab_free_trees &&Gen)=default
Move constructor.
Free tree graph class.
Definition free_tree.hpp:59
Main namespace of the library.
Definition definitions.hpp:48