| 
    LAL: Linear Arrangement Library 24.10.00
    
   A library focused on algorithms on linear arrangements of graphs. 
   | 
 
Uniformly random selection of labelled free trees. More...
#include <rand_lab_free_trees.hpp>
  
Public Member Functions | |
| _rand_lab_free_trees () noexcept | |
| Default constructor.  | |
| _rand_lab_free_trees (const uint64_t n, const uint64_t seed=0) noexcept | |
| Constructor with size of tree and seed for the random number generator.   | |
| _rand_lab_free_trees (const _rand_lab_free_trees &Gen) noexcept=default | |
| Copy constructor.   | |
| _rand_lab_free_trees (_rand_lab_free_trees &&Gen) noexcept=default | |
| Move constructor.   | |
| ~_rand_lab_free_trees ()=default | |
| Default destructor.  | |
| _rand_lab_free_trees & | operator= (const _rand_lab_free_trees &g) noexcept=default | 
| Copy assignment operator.  | |
| _rand_lab_free_trees & | operator= (_rand_lab_free_trees &&g) noexcept=default | 
| Move assignment operator.  | |
| void | init (const uint64_t n, const uint64_t seed=0) noexcept | 
| Initializes the generator with the number of nodes and a seed.   | |
| void | clear () noexcept | 
| Clears the memory used.   | |
| graphs::free_tree | get_tree () noexcept | 
| Returns a labelled free tree chosen uniformly at random.  | |
Protected Attributes | |
| uint64_t | m_n | 
| Number of nodes of the tree.  | |
| std::mt19937 | m_gen | 
| Random number generator.  | |
| std::uniform_int_distribution< uint64_t > | m_unif | 
| Distribution of the numbers.  | |
| detail::array< uint64_t > | m_Prufer_seq | 
| Prüfer sequence.  | |
Uniformly random selection of labelled free trees.
Users should refrain from using this class. The generation of random labelled trees should be done using the wrapper class rand_lab_free_trees. This class, however, contains the actual code to generate labelled free trees uniformly at random.
This class implements an algorithm that uses uniformly random Prüfer sequences (see [41]). The construction of the free labelled tree is done in \(O(n)\).
      
  | 
  inlinenoexcept | 
Constructor with size of tree and seed for the random number generator.
In case the seed given is '0', a random seed will be generated.
| n | Number of nodes. | 
| seed | The seed used for the random generator. | 
      
  | 
  defaultnoexcept | 
Copy constructor.
| Gen | Random labelled free tree generator. | 
      
  | 
  defaultnoexcept | 
Move constructor.
| Gen | Random labelled free tree generator. | 
      
  | 
  inlinenoexcept | 
      
  | 
  inlinenoexcept | 
Initializes the generator with the number of nodes and a seed.
| n | Number of nodes. | 
| seed | The seed used for the random generator. If the seed is 0 then a random seed is generated and used. |