carl  24.04
Computer ARithmetic Library
carlTree.h File Reference
#include <cassert>
#include <iterator>
#include <list>
#include <limits>
#include <stack>
#include <type_traits>
#include <vector>
#include <carl-common/util/streamingOperators.h>
Include dependency graph for carlTree.h:

Go to the source code of this file.

Data Structures

struct  carl::tree_detail::Node< T >
 
struct  carl::tree_detail::BaseIterator< T, Iterator, reverse >
 This is the base class for all iterators. More...
 
struct  carl::tree_detail::PreorderIterator< T, reverse >
 Iterator class for pre-order iterations over all elements. More...
 
struct  carl::tree_detail::PostorderIterator< T, reverse >
 Iterator class for post-order iterations over all elements. More...
 
struct  carl::tree_detail::LeafIterator< T, reverse >
 Iterator class for iterations over all leaf elements. More...
 
struct  carl::tree_detail::DepthIterator< T, reverse >
 Iterator class for iterations over all elements of a certain depth. More...
 
struct  carl::tree_detail::ChildrenIterator< T, reverse >
 Iterator class for iterations over all children of a given element. More...
 
struct  carl::tree_detail::PathIterator< T >
 Iterator class for iterations from a given element to the root. More...
 
class  carl::tree< T >
 This class represents a tree. More...
 

Namespaces

 carl
 carl is the main namespace for the library.
 
 carl::tree_detail
 

Functions

template<typename T >
bool carl::tree_detail::operator== (const Node< T > &lhs, const Node< T > &rhs)
 
template<typename T >
std::ostream & carl::tree_detail::operator<< (std::ostream &os, const Node< T > &n)
 
template<typename T , typename I , bool r>
T & carl::tree_detail::operator* (BaseIterator< T, I, r > &bi)
 
template<typename T , typename I , bool r>
const T & carl::tree_detail::operator* (const BaseIterator< T, I, r > &bi)
 
template<typename T , typename I , bool reverse>
std::enable_if<!reverse, I >::type & carl::tree_detail::operator++ (BaseIterator< T, I, reverse > &it)
 
template<typename T , typename I , bool reverse>
std::enable_if< reverse, I >::type & carl::tree_detail::operator++ (BaseIterator< T, I, reverse > &it)
 
template<typename T , typename I , bool reverse>
std::enable_if<!reverse, I >::type carl::tree_detail::operator++ (BaseIterator< T, I, reverse > &it, int)
 
template<typename T , typename I , bool reverse>
std::enable_if< reverse, I >::type carl::tree_detail::operator++ (BaseIterator< T, I, reverse > &it, int)
 
template<typename T , typename I , bool reverse>
std::enable_if<!reverse, I >::type & carl::tree_detail::operator-- (BaseIterator< T, I, reverse > &it)
 
template<typename T , typename I , bool reverse>
std::enable_if< reverse, I >::type & carl::tree_detail::operator-- (BaseIterator< T, I, reverse > &it)
 
template<typename T , typename I , bool reverse>
std::enable_if<!reverse, I >::type carl::tree_detail::operator-- (BaseIterator< T, I, reverse > &it, int)
 
template<typename T , typename I , bool reverse>
std::enable_if< reverse, I >::type carl::tree_detail::operator-- (BaseIterator< T, I, reverse > &it, int)
 
template<typename T , typename I , bool r>
bool carl::tree_detail::operator== (const BaseIterator< T, I, r > &i1, const BaseIterator< T, I, r > &i2)
 
template<typename T , typename I , bool r>
bool carl::tree_detail::operator!= (const BaseIterator< T, I, r > &i1, const BaseIterator< T, I, r > &i2)
 
template<typename T , typename I , bool r>
bool carl::tree_detail::operator< (const BaseIterator< T, I, r > &i1, const BaseIterator< T, I, r > &i2)
 
template<typename TT >
std::ostream & carl::operator<< (std::ostream &os, const tree< TT > &tree)
 

Variables

constexpr std::size_t carl::tree_detail::MAXINT = std::numeric_limits<std::size_t>::max()
 

Detailed Description