AlgoPlus v0.1.0
Loading...
Searching...
No Matches
red_black_tree< T > Class Template Reference

Class for red black tree. More...

#include <red_black_tree.h>

Classes

class  Iterator
 Iterator class. More...
 

Public Member Functions

 red_black_tree (std::vector< T > _elements={}) noexcept
 Contructor for red black tree class.
 
 red_black_tree (const red_black_tree &rb)
 Copy constructor for red black tree class.
 
 ~red_black_tree () noexcept
 Destructor for red black tree class.
 
red_black_tree< T > & operator= (const red_black_tree< T > &rb)
 operator = for red black tree class
 
bool operator== (const red_black_tree< T > &rb) const
 operator == for red black tree class
 
bool search (T key)
 search function.
 
void insert (T key)
 insert function.
 
void remove (T key)
 remove function.
 
size_t size () const
 size function
 
void clear ()
 clear function
 
std::vector< T > inorder () const
 inorder function.
 
std::vector< T > postorder () const
 postorder function.
 
std::vector< T > preorder () const
 preorder function.
 
std::vector< std::vector< T > > level_order () const
 level order function
 
Iterator begin ()
 pointer that points to begin
 
Iterator end ()
 pointer that points to end
 

Friends

std::ostream & operator<< (std::ostream &out, red_black_tree< T > &rb)
 operator << for red black tree class
 

Detailed Description

template<typename T>
class red_black_tree< T >

Class for red black tree.

Constructor & Destructor Documentation

◆ red_black_tree() [1/2]

template<typename T>
red_black_tree< T >::red_black_tree ( std::vector< T > _elements = {})
inlineexplicitnoexcept

Contructor for red black tree class.

Parameters
_elementsyou can directly pass a vector<T> so you don't have to do insert multiple times.

◆ red_black_tree() [2/2]

template<typename T>
red_black_tree< T >::red_black_tree ( const red_black_tree< T > & rb)
inlineexplicit

Copy constructor for red black tree class.

Parameters
rbthe tree we want to copy

Member Function Documentation

◆ begin()

template<typename T>
Iterator red_black_tree< T >::begin ( )
inline

pointer that points to begin

Returns
Iterator

◆ end()

template<typename T>
Iterator red_black_tree< T >::end ( )
inline

pointer that points to end

Returns
Iterator

◆ inorder()

template<typename T>
std::vector< T > red_black_tree< T >::inorder ( ) const
inline

inorder function.

Returns
vector<T>, the elements inorder.

◆ insert()

template<typename T>
void red_black_tree< T >::insert ( T key)
inline

insert function.

Parameters
keykey to be inserted.

◆ level_order()

template<typename T>
std::vector< std::vector< T > > red_black_tree< T >::level_order ( ) const
inline

level order function

Returns
vector<vector<T>>, the level order traversal of the tree

◆ operator=()

template<typename T>
red_black_tree< T > & red_black_tree< T >::operator= ( const red_black_tree< T > & rb)
inline

operator = for red black tree class

Parameters
rbthe tree we want to copy
Returns
red_black_tree&

◆ operator==()

template<typename T>
bool red_black_tree< T >::operator== ( const red_black_tree< T > & rb) const
inline

operator == for red black tree class

Parameters
rbthe tree we want to compare
Returns
true if they are same, false otherwise

◆ postorder()

template<typename T>
std::vector< T > red_black_tree< T >::postorder ( ) const
inline

postorder function.

Returns
vector<T>, the elements postorder.

◆ preorder()

template<typename T>
std::vector< T > red_black_tree< T >::preorder ( ) const
inline

preorder function.

Returns
vector<T>, the elements preorder.

◆ remove()

template<typename T>
void red_black_tree< T >::remove ( T key)
inline

remove function.

Parameters
keykey to be removed.

◆ search()

template<typename T>
bool red_black_tree< T >::search ( T key)
inline

search function.

Parameters
keykey to be searched.
Returns
true if the key exists in the tree.

◆ size()

template<typename T>
size_t red_black_tree< T >::size ( ) const
inline

size function

Returns
size_t the size of the tree

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