# proto/Source/ntree.h File Reference

Declaration of indexed-trees processing module interface. More...

`#include <map>`
`#include <set>`
`#include <vector>`

## Namespaces
namespace | ace
## Classes
class | ace::NTreeNode
| Class holds information of single indexed-tree node. More...
## Typedefs
typedef size_t | ace::tree_size_t
| Type definition for tree size type used to store NTree indices.
typedef std::vector< tree_size_t > | ace::subtree_t
| To represent subtrees (and resultant n-trees) vector is used.
typedef std::set< tree_size_t > | ace::childs_t
| Childs of certain node are stored in set, because we want them sorted and there's no need for random access.
typedef std::multimap < tree_size_t, subtree_t > | ace::mapped_subtrees_t
| Mapped subtrees are subtrees with some extra special information - key.
typedef std::vector< NTreeNode > | ace::ntree_t
| To represent indexed-tree the std::vector of NTreeNode instances is used.
## Functions
bool | ace::operator< (const NTreeNode &lhs, const NTreeNode &rhs)
| Comparison function for NTreeNode(s).
void | ace::extract_subtrees (ntree_t &nodes, tree_size_t subtree_size, mapped_subtrees_t &results)
| Extracts indexed subtrees of given size from passed indexed-tree.

## Detailed Description

Declaration of indexed-trees processing module interface.

Indexed-tree (sometimes referred to as N-tree) is ordinary rooted trees that has its every node indexed with unique (in tree scope) unsigned number and the indices within one tree are compact (there are no "holes") and goes starts with 1.

Module is designed in purpose to extract indexed subtrees of given size from passed indexed tree (see extract_subtrees()).

(C) Ceslav Przywara 2008, MFF UK Prague