CPPX 2.1.0
A Modern C++ Utility Library
Loading...
Searching...
No Matches
stl_ext::RBTree< T > Class Template Reference

#include <cppx.h>

Inheritance diagram for stl_ext::RBTree< T >:
Collaboration diagram for stl_ext::RBTree< T >:

Public Member Functions

void insert (const T &val) override
 
void remove (const T &val) override
 
void clear ()
 
int get_black_height () const
 
bool validate_rb_properties () const
 
std::vector< Tto_sorted_vector () const
 
- Public Member Functions inherited from stl_ext::BST< T >
bool contains (const T &val) const
 
T get_min () const
 
T get_max () const
 
T get_successor (const T &val) const
 
T get_predecessor (const T &val) const
 
- Public Member Functions inherited from stl_ext::BinaryTree< T >
 BinaryTree ()=default
 
 BinaryTree (const BinaryTree &other)
 
BinaryTreeoperator= (const BinaryTree &other)
 
 BinaryTree (BinaryTree &&other) noexcept
 
BinaryTreeoperator= (BinaryTree &&other) noexcept
 
virtual ~BinaryTree ()
 
Node< T > * get_root () const
 
void set_root (Node< T > *root)
 
bool is_empty () const
 
int size () const
 
void print_preorder () const
 
void print_inorder () const
 
void print_postorder () const
 
void print_levelorder () const
 
void print_tree () const
 
void dump_to_dot (const std::string &filename) const
 
Node< T > * make_node (const T &val)
 
Node< T > * make_node (const T &val, Node< T > *left, Node< T > *right)
 
void set_left (Node< T > *parent, Node< T > *left_child)
 
void set_right (Node< T > *parent, Node< T > *right_child)
 

Static Public Member Functions

static bool is_red (const Node< T > *node)
 
static bool is_black (const Node< T > *node)
 
static Color get_color (const Node< T > *node)
 

Additional Inherited Members

- Protected Member Functions inherited from stl_ext::BinaryTree< T >
void preorder (const Node< T > *node) const
 
void inorder (const Node< T > *node) const
 
void postorder (const Node< T > *node) const
 
void levelorder (const Node< T > *node) const
 
int compute_size (const Node< T > *node) const
 
void print_tree_helper (const Node< T > *node, const std::string &prefix, bool is_left) const
 
void dot_helper (const Node< T > *node, std::ostream &out, int &null_count) const
 
void destroy_subtree (Node< T > *node)
 
Node< T > * clone_subtree (const Node< T > *node)
 
- Protected Attributes inherited from stl_ext::BinaryTree< T >
Node< T > * p_head = nullptr
 
NodePool< Tm_pool
 

Detailed Description

template<typename T>
class stl_ext::RBTree< T >

Definition at line 178 of file cppx.h.

Member Function Documentation

◆ clear()

template<typename T >
void stl_ext::RBTree< T >::clear ( )

Definition at line 402 of file rbt.tpp.

◆ get_black_height()

template<typename T >
int stl_ext::RBTree< T >::get_black_height ( ) const

Definition at line 422 of file rbt.tpp.

◆ get_color()

template<typename T >
Color stl_ext::RBTree< T >::get_color ( const Node< T > *  node)
static

Definition at line 17 of file rbt.tpp.

◆ insert()

template<typename T >
void stl_ext::RBTree< T >::insert ( const T val)
overridevirtual

Reimplemented from stl_ext::BST< T >.

Definition at line 76 of file rbt.tpp.

◆ is_black()

template<typename T >
bool stl_ext::RBTree< T >::is_black ( const Node< T > *  node)
static

Definition at line 12 of file rbt.tpp.

◆ is_red()

template<typename T >
bool stl_ext::RBTree< T >::is_red ( const Node< T > *  node)
static

Definition at line 7 of file rbt.tpp.

◆ remove()

template<typename T >
void stl_ext::RBTree< T >::remove ( const T val)
overridevirtual

Reimplemented from stl_ext::BST< T >.

Definition at line 184 of file rbt.tpp.

◆ to_sorted_vector()

template<typename T >
std::vector< T > stl_ext::RBTree< T >::to_sorted_vector ( ) const

Definition at line 468 of file rbt.tpp.

◆ validate_rb_properties()

template<typename T >
bool stl_ext::RBTree< T >::validate_rb_properties ( ) const

Definition at line 448 of file rbt.tpp.


The documentation for this class was generated from the following files: