C++ Library Extensions 2022.12.09
To help learn modern C++ programming
binary_node< ElementType > Class Template Reference

Public Types

enum class  visit_mode : int {
  pre_order , in_order , ascending_order = in_order , post_order ,
  descending_order , pre_order , in_order , ascending_order = in_order ,
  post_order , descending_order , pre_order , in_order ,
  ascending_order = in_order , post_order , descending_order , undefined = 0 ,
  pre_order , in_order , ascending_order = in_order , post_order ,
  descending_order , undefined = 0 , pre_order , in_order ,
  ascending_order = in_order , post_order , descending_order , undefined = 0 ,
  pre_order , in_order , ascending_order = in_order , post_order ,
  descending_order , undefined = 0 , pre_order , in_order ,
  ascending_order = in_order , post_order , descending_order , undefined = 0 ,
  pre_order , in_order , ascending_order = in_order , post_order ,
  descending_order , undefined = 0 , pre_order , in_order ,
  ascending_order = in_order , post_order , descending_order , undefined = 0 ,
  pre_order , in_order , ascending_order = in_order , post_order ,
  descending_order
}
 
enum class  visit_mode : int {
  pre_order , in_order , ascending_order = in_order , post_order ,
  descending_order , pre_order , in_order , ascending_order = in_order ,
  post_order , descending_order , pre_order , in_order ,
  ascending_order = in_order , post_order , descending_order , undefined = 0 ,
  pre_order , in_order , ascending_order = in_order , post_order ,
  descending_order , undefined = 0 , pre_order , in_order ,
  ascending_order = in_order , post_order , descending_order , undefined = 0 ,
  pre_order , in_order , ascending_order = in_order , post_order ,
  descending_order , undefined = 0 , pre_order , in_order ,
  ascending_order = in_order , post_order , descending_order , undefined = 0 ,
  pre_order , in_order , ascending_order = in_order , post_order ,
  descending_order , undefined = 0 , pre_order , in_order ,
  ascending_order = in_order , post_order , descending_order , undefined = 0 ,
  pre_order , in_order , ascending_order = in_order , post_order ,
  descending_order
}
 
enum class  visit_mode : int {
  pre_order , in_order , ascending_order = in_order , post_order ,
  descending_order , pre_order , in_order , ascending_order = in_order ,
  post_order , descending_order , pre_order , in_order ,
  ascending_order = in_order , post_order , descending_order , undefined = 0 ,
  pre_order , in_order , ascending_order = in_order , post_order ,
  descending_order , undefined = 0 , pre_order , in_order ,
  ascending_order = in_order , post_order , descending_order , undefined = 0 ,
  pre_order , in_order , ascending_order = in_order , post_order ,
  descending_order , undefined = 0 , pre_order , in_order ,
  ascending_order = in_order , post_order , descending_order , undefined = 0 ,
  pre_order , in_order , ascending_order = in_order , post_order ,
  descending_order , undefined = 0 , pre_order , in_order ,
  ascending_order = in_order , post_order , descending_order , undefined = 0 ,
  pre_order , in_order , ascending_order = in_order , post_order ,
  descending_order
}
 
enum class  child_status : int {
  left_child = -1 , no_child = 0 , right_child = 1 , left_child = -1 ,
  no_child = 0 , right_child = 1 , left_child = -1 , no_child = 0 ,
  right_child = 1 , left_child = -1 , no_child = 0 , right_child = 1 ,
  left_child = -1 , no_child = 0 , right_child = 1 , left_child = -1 ,
  no_child = 0 , right_child = 1 , left_child = -1 , no_child = 0 ,
  right_child = 1 , left_child = -1 , no_child = 0 , right_child = 1
}
 
enum class  visit_mode : int {
  pre_order , in_order , ascending_order = in_order , post_order ,
  descending_order , pre_order , in_order , ascending_order = in_order ,
  post_order , descending_order , pre_order , in_order ,
  ascending_order = in_order , post_order , descending_order , undefined = 0 ,
  pre_order , in_order , ascending_order = in_order , post_order ,
  descending_order , undefined = 0 , pre_order , in_order ,
  ascending_order = in_order , post_order , descending_order , undefined = 0 ,
  pre_order , in_order , ascending_order = in_order , post_order ,
  descending_order , undefined = 0 , pre_order , in_order ,
  ascending_order = in_order , post_order , descending_order , undefined = 0 ,
  pre_order , in_order , ascending_order = in_order , post_order ,
  descending_order , undefined = 0 , pre_order , in_order ,
  ascending_order = in_order , post_order , descending_order , undefined = 0 ,
  pre_order , in_order , ascending_order = in_order , post_order ,
  descending_order
}
 
enum class  find_mode : int {
  undefined = 0 , predecessor = 1 , exact_match = 2 , successor = 3 ,
  undefined = 0 , predecessor = 1 , exact_match = 2 , successor = 3 ,
  undefined = 0 , predecessor = 1 , exact_match = 2 , successor = 3 ,
  undefined = 0 , predecessor = 1 , exact_match = 2 , successor = 3 ,
  undefined = 0 , predecessor = 1 , exact_match = 2 , successor = 3 ,
  undefined = 0 , predecessor = 1 , exact_match = 2 , successor = 3 ,
  undefined = 0 , predecessor = 1 , exact_match = 2 , successor = 3
}
 
enum class  child_status : int {
  left_child = -1 , no_child = 0 , right_child = 1 , left_child = -1 ,
  no_child = 0 , right_child = 1 , left_child = -1 , no_child = 0 ,
  right_child = 1 , left_child = -1 , no_child = 0 , right_child = 1 ,
  left_child = -1 , no_child = 0 , right_child = 1 , left_child = -1 ,
  no_child = 0 , right_child = 1 , left_child = -1 , no_child = 0 ,
  right_child = 1 , left_child = -1 , no_child = 0 , right_child = 1
}
 
enum class  visit_mode : int {
  pre_order , in_order , ascending_order = in_order , post_order ,
  descending_order , pre_order , in_order , ascending_order = in_order ,
  post_order , descending_order , pre_order , in_order ,
  ascending_order = in_order , post_order , descending_order , undefined = 0 ,
  pre_order , in_order , ascending_order = in_order , post_order ,
  descending_order , undefined = 0 , pre_order , in_order ,
  ascending_order = in_order , post_order , descending_order , undefined = 0 ,
  pre_order , in_order , ascending_order = in_order , post_order ,
  descending_order , undefined = 0 , pre_order , in_order ,
  ascending_order = in_order , post_order , descending_order , undefined = 0 ,
  pre_order , in_order , ascending_order = in_order , post_order ,
  descending_order , undefined = 0 , pre_order , in_order ,
  ascending_order = in_order , post_order , descending_order , undefined = 0 ,
  pre_order , in_order , ascending_order = in_order , post_order ,
  descending_order
}
 
enum class  find_mode : int {
  undefined = 0 , predecessor = 1 , exact_match = 2 , successor = 3 ,
  undefined = 0 , predecessor = 1 , exact_match = 2 , successor = 3 ,
  undefined = 0 , predecessor = 1 , exact_match = 2 , successor = 3 ,
  undefined = 0 , predecessor = 1 , exact_match = 2 , successor = 3 ,
  undefined = 0 , predecessor = 1 , exact_match = 2 , successor = 3 ,
  undefined = 0 , predecessor = 1 , exact_match = 2 , successor = 3 ,
  undefined = 0 , predecessor = 1 , exact_match = 2 , successor = 3
}
 
enum class  child_status : int {
  left_child = -1 , no_child = 0 , right_child = 1 , left_child = -1 ,
  no_child = 0 , right_child = 1 , left_child = -1 , no_child = 0 ,
  right_child = 1 , left_child = -1 , no_child = 0 , right_child = 1 ,
  left_child = -1 , no_child = 0 , right_child = 1 , left_child = -1 ,
  no_child = 0 , right_child = 1 , left_child = -1 , no_child = 0 ,
  right_child = 1 , left_child = -1 , no_child = 0 , right_child = 1
}
 
enum class  visit_mode : int {
  pre_order , in_order , ascending_order = in_order , post_order ,
  descending_order , pre_order , in_order , ascending_order = in_order ,
  post_order , descending_order , pre_order , in_order ,
  ascending_order = in_order , post_order , descending_order , undefined = 0 ,
  pre_order , in_order , ascending_order = in_order , post_order ,
  descending_order , undefined = 0 , pre_order , in_order ,
  ascending_order = in_order , post_order , descending_order , undefined = 0 ,
  pre_order , in_order , ascending_order = in_order , post_order ,
  descending_order , undefined = 0 , pre_order , in_order ,
  ascending_order = in_order , post_order , descending_order , undefined = 0 ,
  pre_order , in_order , ascending_order = in_order , post_order ,
  descending_order , undefined = 0 , pre_order , in_order ,
  ascending_order = in_order , post_order , descending_order , undefined = 0 ,
  pre_order , in_order , ascending_order = in_order , post_order ,
  descending_order
}
 
enum class  find_mode : int {
  undefined = 0 , predecessor = 1 , exact_match = 2 , successor = 3 ,
  undefined = 0 , predecessor = 1 , exact_match = 2 , successor = 3 ,
  undefined = 0 , predecessor = 1 , exact_match = 2 , successor = 3 ,
  undefined = 0 , predecessor = 1 , exact_match = 2 , successor = 3 ,
  undefined = 0 , predecessor = 1 , exact_match = 2 , successor = 3 ,
  undefined = 0 , predecessor = 1 , exact_match = 2 , successor = 3 ,
  undefined = 0 , predecessor = 1 , exact_match = 2 , successor = 3
}
 
enum class  child_status : int {
  left_child = -1 , no_child = 0 , right_child = 1 , left_child = -1 ,
  no_child = 0 , right_child = 1 , left_child = -1 , no_child = 0 ,
  right_child = 1 , left_child = -1 , no_child = 0 , right_child = 1 ,
  left_child = -1 , no_child = 0 , right_child = 1 , left_child = -1 ,
  no_child = 0 , right_child = 1 , left_child = -1 , no_child = 0 ,
  right_child = 1 , left_child = -1 , no_child = 0 , right_child = 1
}
 
enum class  visit_mode : int {
  pre_order , in_order , ascending_order = in_order , post_order ,
  descending_order , pre_order , in_order , ascending_order = in_order ,
  post_order , descending_order , pre_order , in_order ,
  ascending_order = in_order , post_order , descending_order , undefined = 0 ,
  pre_order , in_order , ascending_order = in_order , post_order ,
  descending_order , undefined = 0 , pre_order , in_order ,
  ascending_order = in_order , post_order , descending_order , undefined = 0 ,
  pre_order , in_order , ascending_order = in_order , post_order ,
  descending_order , undefined = 0 , pre_order , in_order ,
  ascending_order = in_order , post_order , descending_order , undefined = 0 ,
  pre_order , in_order , ascending_order = in_order , post_order ,
  descending_order , undefined = 0 , pre_order , in_order ,
  ascending_order = in_order , post_order , descending_order , undefined = 0 ,
  pre_order , in_order , ascending_order = in_order , post_order ,
  descending_order
}
 
enum class  find_mode : int {
  undefined = 0 , predecessor = 1 , exact_match = 2 , successor = 3 ,
  undefined = 0 , predecessor = 1 , exact_match = 2 , successor = 3 ,
  undefined = 0 , predecessor = 1 , exact_match = 2 , successor = 3 ,
  undefined = 0 , predecessor = 1 , exact_match = 2 , successor = 3 ,
  undefined = 0 , predecessor = 1 , exact_match = 2 , successor = 3 ,
  undefined = 0 , predecessor = 1 , exact_match = 2 , successor = 3 ,
  undefined = 0 , predecessor = 1 , exact_match = 2 , successor = 3
}
 
enum class  child_status : int {
  left_child = -1 , no_child = 0 , right_child = 1 , left_child = -1 ,
  no_child = 0 , right_child = 1 , left_child = -1 , no_child = 0 ,
  right_child = 1 , left_child = -1 , no_child = 0 , right_child = 1 ,
  left_child = -1 , no_child = 0 , right_child = 1 , left_child = -1 ,
  no_child = 0 , right_child = 1 , left_child = -1 , no_child = 0 ,
  right_child = 1 , left_child = -1 , no_child = 0 , right_child = 1
}
 
enum class  visit_mode : int {
  pre_order , in_order , ascending_order = in_order , post_order ,
  descending_order , pre_order , in_order , ascending_order = in_order ,
  post_order , descending_order , pre_order , in_order ,
  ascending_order = in_order , post_order , descending_order , undefined = 0 ,
  pre_order , in_order , ascending_order = in_order , post_order ,
  descending_order , undefined = 0 , pre_order , in_order ,
  ascending_order = in_order , post_order , descending_order , undefined = 0 ,
  pre_order , in_order , ascending_order = in_order , post_order ,
  descending_order , undefined = 0 , pre_order , in_order ,
  ascending_order = in_order , post_order , descending_order , undefined = 0 ,
  pre_order , in_order , ascending_order = in_order , post_order ,
  descending_order , undefined = 0 , pre_order , in_order ,
  ascending_order = in_order , post_order , descending_order , undefined = 0 ,
  pre_order , in_order , ascending_order = in_order , post_order ,
  descending_order
}
 
enum class  find_mode : int {
  undefined = 0 , predecessor = 1 , exact_match = 2 , successor = 3 ,
  undefined = 0 , predecessor = 1 , exact_match = 2 , successor = 3 ,
  undefined = 0 , predecessor = 1 , exact_match = 2 , successor = 3 ,
  undefined = 0 , predecessor = 1 , exact_match = 2 , successor = 3 ,
  undefined = 0 , predecessor = 1 , exact_match = 2 , successor = 3 ,
  undefined = 0 , predecessor = 1 , exact_match = 2 , successor = 3 ,
  undefined = 0 , predecessor = 1 , exact_match = 2 , successor = 3
}
 
enum class  child_status : int {
  left_child = -1 , no_child = 0 , right_child = 1 , left_child = -1 ,
  no_child = 0 , right_child = 1 , left_child = -1 , no_child = 0 ,
  right_child = 1 , left_child = -1 , no_child = 0 , right_child = 1 ,
  left_child = -1 , no_child = 0 , right_child = 1 , left_child = -1 ,
  no_child = 0 , right_child = 1 , left_child = -1 , no_child = 0 ,
  right_child = 1 , left_child = -1 , no_child = 0 , right_child = 1
}
 
enum class  visit_mode : int {
  pre_order , in_order , ascending_order = in_order , post_order ,
  descending_order , pre_order , in_order , ascending_order = in_order ,
  post_order , descending_order , pre_order , in_order ,
  ascending_order = in_order , post_order , descending_order , undefined = 0 ,
  pre_order , in_order , ascending_order = in_order , post_order ,
  descending_order , undefined = 0 , pre_order , in_order ,
  ascending_order = in_order , post_order , descending_order , undefined = 0 ,
  pre_order , in_order , ascending_order = in_order , post_order ,
  descending_order , undefined = 0 , pre_order , in_order ,
  ascending_order = in_order , post_order , descending_order , undefined = 0 ,
  pre_order , in_order , ascending_order = in_order , post_order ,
  descending_order , undefined = 0 , pre_order , in_order ,
  ascending_order = in_order , post_order , descending_order , undefined = 0 ,
  pre_order , in_order , ascending_order = in_order , post_order ,
  descending_order
}
 
enum class  find_mode : int {
  undefined = 0 , predecessor = 1 , exact_match = 2 , successor = 3 ,
  undefined = 0 , predecessor = 1 , exact_match = 2 , successor = 3 ,
  undefined = 0 , predecessor = 1 , exact_match = 2 , successor = 3 ,
  undefined = 0 , predecessor = 1 , exact_match = 2 , successor = 3 ,
  undefined = 0 , predecessor = 1 , exact_match = 2 , successor = 3 ,
  undefined = 0 , predecessor = 1 , exact_match = 2 , successor = 3 ,
  undefined = 0 , predecessor = 1 , exact_match = 2 , successor = 3
}
 
enum class  child_status : int {
  left_child = -1 , no_child = 0 , right_child = 1 , left_child = -1 ,
  no_child = 0 , right_child = 1 , left_child = -1 , no_child = 0 ,
  right_child = 1 , left_child = -1 , no_child = 0 , right_child = 1 ,
  left_child = -1 , no_child = 0 , right_child = 1 , left_child = -1 ,
  no_child = 0 , right_child = 1 , left_child = -1 , no_child = 0 ,
  right_child = 1 , left_child = -1 , no_child = 0 , right_child = 1
}
 
enum class  visit_mode : int {
  pre_order , in_order , ascending_order = in_order , post_order ,
  descending_order , pre_order , in_order , ascending_order = in_order ,
  post_order , descending_order , pre_order , in_order ,
  ascending_order = in_order , post_order , descending_order , undefined = 0 ,
  pre_order , in_order , ascending_order = in_order , post_order ,
  descending_order , undefined = 0 , pre_order , in_order ,
  ascending_order = in_order , post_order , descending_order , undefined = 0 ,
  pre_order , in_order , ascending_order = in_order , post_order ,
  descending_order , undefined = 0 , pre_order , in_order ,
  ascending_order = in_order , post_order , descending_order , undefined = 0 ,
  pre_order , in_order , ascending_order = in_order , post_order ,
  descending_order , undefined = 0 , pre_order , in_order ,
  ascending_order = in_order , post_order , descending_order , undefined = 0 ,
  pre_order , in_order , ascending_order = in_order , post_order ,
  descending_order
}
 
enum class  find_mode : int {
  undefined = 0 , predecessor = 1 , exact_match = 2 , successor = 3 ,
  undefined = 0 , predecessor = 1 , exact_match = 2 , successor = 3 ,
  undefined = 0 , predecessor = 1 , exact_match = 2 , successor = 3 ,
  undefined = 0 , predecessor = 1 , exact_match = 2 , successor = 3 ,
  undefined = 0 , predecessor = 1 , exact_match = 2 , successor = 3 ,
  undefined = 0 , predecessor = 1 , exact_match = 2 , successor = 3 ,
  undefined = 0 , predecessor = 1 , exact_match = 2 , successor = 3
}
 
enum class  child_status : int {
  left_child = -1 , no_child = 0 , right_child = 1 , left_child = -1 ,
  no_child = 0 , right_child = 1 , left_child = -1 , no_child = 0 ,
  right_child = 1 , left_child = -1 , no_child = 0 , right_child = 1 ,
  left_child = -1 , no_child = 0 , right_child = 1 , left_child = -1 ,
  no_child = 0 , right_child = 1 , left_child = -1 , no_child = 0 ,
  right_child = 1 , left_child = -1 , no_child = 0 , right_child = 1
}
 
using node_ptr_t = std::unique_ptr< binary_node >
 
using node_ptr_t = std::unique_ptr< binary_node >
 
using node_ptr_t = std::unique_ptr< binary_node >
 
using node_ptr_t = std::unique_ptr< binary_node >
 
using node_ptr_t = std::unique_ptr< binary_node >
 
using node_ptr_t = std::unique_ptr< binary_node >
 
using node_ptr_t = std::unique_ptr< binary_node >
 
using node_ptr_t = std::unique_ptr< binary_node >
 
using node_ptr_t = std::unique_ptr< binary_node >
 
using node_ptr_t = std::unique_ptr< binary_node >
 

Public Member Functions

 binary_node (ElementType value=ElementType{}, binary_node *parent=nullptr)
 
bool insert (ElementType value)
 
void visit_nodes (std::stringstream &os, visit_mode order=visit_mode::in_order)
 
tpf::sstreamget_node_name (tpf::sstream &os)
 
tpf::sstreamget_node_definition (tpf::sstream &os)
 
void print_node (tpf::sstream &os)
 
string_t build_digraph ()
 
ElementType get () const
 
binary_nodefind (ElementType value)
 
 binary_node (ElementType value=ElementType{}, binary_node *parent=nullptr)
 
bool insert (ElementType value)
 
template<typename Type , typename... Types>
bool insert (Type arg, Types... args)
 
void visit_nodes (tpf::sstream &os, visit_mode order=visit_mode::in_order)
 
int height (bool bRecalculate=false) const
 
void update_height ()
 
child_status get_child_status (binary_node *child)
 
tpf::sstreamget_node_name (tpf::sstream &os)
 
tpf::sstreamget_node_definition (tpf::sstream &os)
 
void print_node (tpf::sstream &os)
 
string_t build_digraph ()
 
const ElementType & get () const
 
binary_nodefind (ElementType value)
 
 binary_node (ElementType value=ElementType{}, binary_node *parent=nullptr)
 
template<typename Type >
enable_if_all_types_are_the_same_t< bool, ElementType, Type > insert (Type &&value)
 
template<typename Type , typename... Types>
enable_if_all_types_are_the_same_t< bool, ElementType, Type, Types... > insert (Type &&arg, Types &&... args)
 
void visit_nodes (tpf::sstream &os, visit_mode order=visit_mode::in_order)
 
int height (bool bRecalculate=false) const
 
void update_height ()
 
child_status get_child_status (binary_node *child)
 
tpf::sstreamget_node_name (tpf::sstream &os)
 
tpf::sstreamget_node_definition (tpf::sstream &os)
 
void print_node (tpf::sstream &os)
 
string_t build_digraph ()
 
const ElementType & get () const
 
binary_nodefind (ElementType value)
 
 binary_node (ElementType value=ElementType{}, binary_node *parent=nullptr)
 
template<typename Type >
enable_if_all_types_are_the_same_t< bool, ElementType, Type > insert (Type &&value)
 
template<typename Type , typename... Types>
enable_if_all_types_are_the_same_t< bool, ElementType, Type, Types... > insert (Type &&arg, Types &&... args)
 
void visit_nodes (tpf::sstream &os, visit_mode order=visit_mode::in_order)
 
binary_nodefind (ElementType value, find_mode fmode, visit_mode vmode=visit_mode::ascending_order)
 
int height (bool bRecalculate=false) const
 
void update_height ()
 
child_status get_child_status (binary_node *child)
 
tpf::sstreamget_node_name (tpf::sstream &os)
 
tpf::sstreamget_node_definition (tpf::sstream &os)
 
void print_node (tpf::sstream &os)
 
string_t build_digraph ()
 
const ElementType & get () const
 
binary_nodefind (ElementType value)
 
 binary_node (ElementType value=ElementType{}, binary_node *parent=nullptr)
 
template<typename Type >
enable_if_all_types_are_the_same_t< bool, ElementType, Type > insert (Type &&value)
 
bool graft (node_ptr_t node_ptr)
 
template<typename Type , typename... Types>
enable_if_all_types_are_the_same_t< bool, ElementType, Type, Types... > insert (Type &&arg, Types &&... args)
 
void visit_nodes (tpf::sstream &os, visit_mode order=visit_mode::in_order)
 
binary_nodefind (ElementType value, find_mode fmode, visit_mode vmode=visit_mode::ascending_order)
 
int height (bool bRecalculate=false) const
 
void update_height ()
 
child_status get_child_status (binary_node *child)
 
tpf::sstreamget_node_name (tpf::sstream &os)
 
tpf::sstreamget_node_definition (tpf::sstream &os)
 
void print_node (tpf::sstream &os)
 
string_t build_digraph ()
 
const ElementType & get () const
 
binary_nodefind (ElementType value)
 
 binary_node (ElementType value=ElementType{}, binary_node *parent=nullptr)
 
template<typename Type >
enable_if_all_types_are_the_same_t< bool, ElementType, Type > insert (Type &&value)
 
bool graft (node_ptr_t &node_ptr)
 
template<typename Type , typename... Types>
enable_if_all_types_are_the_same_t< bool, ElementType, Type, Types... > insert (Type &&arg, Types &&... args)
 
void visit_nodes (tpf::sstream &os, visit_mode order=visit_mode::in_order)
 
binary_nodefind (ElementType value, find_mode fmode, visit_mode vmode=visit_mode::ascending_order)
 
bool is_leaf_node ()
 
node_ptr_t release_child (binary_node *ptr)
 
int height (bool bRecalculate=false) const
 
void update_height ()
 
child_status get_child_status (binary_node *child)
 
tpf::sstreamget_node_name (tpf::sstream &os)
 
tpf::sstreamget_node_definition (tpf::sstream &os)
 
void print_node (tpf::sstream &os)
 
string_t build_digraph ()
 
const ElementType & get () const
 
binary_nodefind (ElementType value)
 
 binary_node (ElementType value=ElementType{}, binary_node *parent=nullptr)
 
template<typename Type >
enable_if_all_types_are_the_same_t< bool, ElementType, Type > insert (Type &&value)
 
bool graft (node_ptr_t &node_ptr)
 
template<typename Type , typename... Types>
enable_if_all_types_are_the_same_t< bool, ElementType, Type, Types... > insert (Type &&arg, Types &&... args)
 
void visit_nodes (tpf::sstream &os, visit_mode order=visit_mode::in_order)
 
binary_nodefind (ElementType value, find_mode fmode, visit_mode vmode=visit_mode::ascending_order)
 
bool is_leaf_node ()
 
node_ptr_t release_child (binary_node *ptr)
 
int height (bool bRecalculate=false) const
 
void update_height ()
 
child_status get_child_status (binary_node *child)
 
tpf::sstreamget_node_name (tpf::sstream &os)
 
tpf::sstreamget_node_definition (tpf::sstream &os)
 
void print_node (tpf::sstream &os)
 
string_t build_digraph ()
 
const ElementType & get () const
 
void find_raw (ElementType value)
 
binary_nodefind (ElementType value)
 
binary_nodeminimum ()
 
binary_nodemaximum ()
 
 binary_node (ElementType value=ElementType{}, binary_node *parent=nullptr)
 
template<typename Type >
enable_if_all_types_are_the_same_t< bool, ElementType, Type > insert (Type &&value)
 
bool graft (node_ptr_t &node_ptr)
 
template<typename Type , typename... Types>
enable_if_all_types_are_the_same_t< bool, ElementType, Type, Types... > insert (Type &&arg, Types &&... args)
 
void visit_nodes (tpf::sstream &os, visit_mode order=visit_mode::in_order)
 
binary_nodefind (ElementType value, find_mode fmode, visit_mode vmode=visit_mode::ascending_order)
 
bool is_leaf_node ()
 
node_ptr_t release_child (binary_node *ptr)
 
void nearest_left_parent_raw (binary_node *child)
 
binary_nodenearest_left_parent (binary_node *child)
 
binary_nodenearest_left_parent (ElementType value)
 
void nearest_right_parent_raw (binary_node *child)
 
binary_nodenearest_right_parent (binary_node *child)
 
binary_nodenearest_right_parent (ElementType value)
 
int height (bool bRecalculate=false) const
 
void update_height ()
 
child_status get_child_status (binary_node *child)
 
tpf::sstreamget_node_name (tpf::sstream &os)
 
tpf::sstreamget_node_definition (tpf::sstream &os)
 
void print_node (tpf::sstream &os)
 
string_t build_digraph ()
 
const ElementType & get () const
 
void find_raw (ElementType value)
 
binary_nodefind (ElementType value)
 
binary_nodeminimum ()
 
binary_nodemaximum ()
 
 binary_node (ElementType value=ElementType{}, binary_node *parent=nullptr)
 
template<typename Type >
enable_if_all_types_are_the_same_t< bool, ElementType, Type > insert (Type &&value)
 
bool graft (node_ptr_t &node_ptr)
 
template<typename Type , typename... Types>
enable_if_all_types_are_the_same_t< bool, ElementType, Type, Types... > insert (Type &&arg, Types &&... args)
 
void visit_nodes (tpf::sstream &os, visit_mode order=visit_mode::in_order)
 
binary_nodefind (ElementType value, find_mode fmode, visit_mode vmode=visit_mode::ascending_order)
 
bool is_leaf_node ()
 
node_ptr_t release_child (binary_node *ptr)
 
void nearest_left_parent_raw (binary_node *child)
 
binary_nodenearest_left_parent (binary_node *child)
 
binary_nodenearest_left_parent (ElementType value)
 
void nearest_right_parent_raw (binary_node *child)
 
binary_nodenearest_right_parent (binary_node *child)
 
binary_nodenearest_right_parent (ElementType value)
 
int height (bool bRecalculate=false) const
 
void update_height ()
 
child_status get_child_status (binary_node *child)
 
tpf::sstreamget_node_name (tpf::sstream &os)
 
tpf::sstreamget_node_definition (tpf::sstream &os)
 
void print_node (tpf::sstream &os)
 
string_t build_digraph ()
 
const ElementType & get () const
 
void find_raw (ElementType value)
 
binary_nodefind (ElementType value)
 
binary_nodeminimum ()
 
binary_nodemaximum ()
 
 binary_node (ElementType value=ElementType{}, binary_node *parent=nullptr)
 
template<typename Type >
enable_if_all_types_are_the_same_t< bool, ElementType, Type > insert (Type &&value)
 
bool graft (node_ptr_t &node_ptr)
 
template<typename Type , typename... Types>
enable_if_all_types_are_the_same_t< bool, ElementType, Type, Types... > insert (Type &&arg, Types &&... args)
 
void visit_nodes (tpf::sstream &os, visit_mode order=visit_mode::in_order)
 
binary_nodefind (ElementType value, find_mode fmode, visit_mode vmode=visit_mode::ascending_order)
 
bool is_leaf_node ()
 
node_ptr_t release_child (binary_node *ptr)
 

Static Public Member Functions

static bool remove_node (node_ptr_t &root_ptr, ElementType value)
 
static bool remove_node (node_ptr_t &root_ptr, ElementType value)
 
static bool remove_node (node_ptr_t &root_ptr, ElementType value)
 
static bool remove_node (node_ptr_t &root_ptr, ElementType value)
 
static bool remove_node (node_ptr_t &root_ptr, ElementType value)
 
static bool remove_node (node_ptr_t &root_ptr, ElementType value)
 

Detailed Description

template<typename ElementType>
class binary_node< ElementType >

Definition at line 11 of file 049-binary_tree01.cpp.

Member Typedef Documentation

◆ node_ptr_t [1/10]

template<typename ElementType >
using binary_node< ElementType >::node_ptr_t = std::unique_ptr<binary_node>

Definition at line 14 of file 049-binary_tree01.cpp.

◆ node_ptr_t [2/10]

template<typename ElementType >
using binary_node< ElementType >::node_ptr_t = std::unique_ptr<binary_node>

Definition at line 17 of file 050-binary_tree02.cpp.

◆ node_ptr_t [3/10]

template<typename ElementType >
using binary_node< ElementType >::node_ptr_t = std::unique_ptr<binary_node>

Definition at line 32 of file 051-binary_tree03.cpp.

◆ node_ptr_t [4/10]

template<typename ElementType >
using binary_node< ElementType >::node_ptr_t = std::unique_ptr<binary_node>

Definition at line 32 of file 052-binary_tree04.cpp.

◆ node_ptr_t [5/10]

template<typename ElementType >
using binary_node< ElementType >::node_ptr_t = std::unique_ptr<binary_node>

Definition at line 32 of file 053-binary_tree05.cpp.

◆ node_ptr_t [6/10]

template<typename ElementType >
using binary_node< ElementType >::node_ptr_t = std::unique_ptr<binary_node>

Definition at line 32 of file 054-binary_tree06.cpp.

◆ node_ptr_t [7/10]

template<typename ElementType >
using binary_node< ElementType >::node_ptr_t = std::unique_ptr<binary_node>

Definition at line 32 of file 055-binary_tree07.cpp.

◆ node_ptr_t [8/10]

template<typename ElementType >
using binary_node< ElementType >::node_ptr_t = std::unique_ptr<binary_node>

Definition at line 32 of file 056-binary_tree08.cpp.

◆ node_ptr_t [9/10]

template<typename ElementType >
using binary_node< ElementType >::node_ptr_t = std::unique_ptr<binary_node>

Definition at line 32 of file 057-binary_tree09.cpp.

◆ node_ptr_t [10/10]

template<typename ElementType >
using binary_node< ElementType >::node_ptr_t = std::unique_ptr<binary_node>

Definition at line 32 of file 058-binary_tree10.cpp.

Member Enumeration Documentation

◆ child_status [1/8]

template<typename ElementType >
enum class binary_node::child_status : int
strong
Enumerator
left_child 
no_child 
right_child 
left_child 
no_child 
right_child 
left_child 
no_child 
right_child 
left_child 
no_child 
right_child 
left_child 
no_child 
right_child 
left_child 
no_child 
right_child 
left_child 
no_child 
right_child 
left_child 
no_child 
right_child 

Definition at line 36 of file 051-binary_tree03.cpp.

◆ child_status [2/8]

template<typename ElementType >
enum class binary_node::child_status : int
strong
Enumerator
left_child 
no_child 
right_child 
left_child 
no_child 
right_child 
left_child 
no_child 
right_child 
left_child 
no_child 
right_child 
left_child 
no_child 
right_child 
left_child 
no_child 
right_child 
left_child 
no_child 
right_child 
left_child 
no_child 
right_child 

Definition at line 38 of file 052-binary_tree04.cpp.

◆ child_status [3/8]

template<typename ElementType >
enum class binary_node::child_status : int
strong
Enumerator
left_child 
no_child 
right_child 
left_child 
no_child 
right_child 
left_child 
no_child 
right_child 
left_child 
no_child 
right_child 
left_child 
no_child 
right_child 
left_child 
no_child 
right_child 
left_child 
no_child 
right_child 
left_child 
no_child 
right_child 

Definition at line 38 of file 053-binary_tree05.cpp.

◆ child_status [4/8]

template<typename ElementType >
enum class binary_node::child_status : int
strong
Enumerator
left_child 
no_child 
right_child 
left_child 
no_child 
right_child 
left_child 
no_child 
right_child 
left_child 
no_child 
right_child 
left_child 
no_child 
right_child 
left_child 
no_child 
right_child 
left_child 
no_child 
right_child 
left_child 
no_child 
right_child 

Definition at line 38 of file 054-binary_tree06.cpp.

◆ child_status [5/8]

template<typename ElementType >
enum class binary_node::child_status : int
strong
Enumerator
left_child 
no_child 
right_child 
left_child 
no_child 
right_child 
left_child 
no_child 
right_child 
left_child 
no_child 
right_child 
left_child 
no_child 
right_child 
left_child 
no_child 
right_child 
left_child 
no_child 
right_child 
left_child 
no_child 
right_child 

Definition at line 38 of file 055-binary_tree07.cpp.

◆ child_status [6/8]

template<typename ElementType >
enum class binary_node::child_status : int
strong
Enumerator
left_child 
no_child 
right_child 
left_child 
no_child 
right_child 
left_child 
no_child 
right_child 
left_child 
no_child 
right_child 
left_child 
no_child 
right_child 
left_child 
no_child 
right_child 
left_child 
no_child 
right_child 
left_child 
no_child 
right_child 

Definition at line 38 of file 056-binary_tree08.cpp.

◆ child_status [7/8]

template<typename ElementType >
enum class binary_node::child_status : int
strong
Enumerator
left_child 
no_child 
right_child 
left_child 
no_child 
right_child 
left_child 
no_child 
right_child 
left_child 
no_child 
right_child 
left_child 
no_child 
right_child 
left_child 
no_child 
right_child 
left_child 
no_child 
right_child 
left_child 
no_child 
right_child 

Definition at line 38 of file 057-binary_tree09.cpp.

◆ child_status [8/8]

template<typename ElementType >
enum class binary_node::child_status : int
strong
Enumerator
left_child 
no_child 
right_child 
left_child 
no_child 
right_child 
left_child 
no_child 
right_child 
left_child 
no_child 
right_child 
left_child 
no_child 
right_child 
left_child 
no_child 
right_child 
left_child 
no_child 
right_child 
left_child 
no_child 
right_child 

Definition at line 38 of file 058-binary_tree10.cpp.

◆ find_mode [1/7]

template<typename ElementType >
enum class binary_node::find_mode : int
strong
Enumerator
undefined 
predecessor 
exact_match 
successor 
undefined 
predecessor 
exact_match 
successor 
undefined 
predecessor 
exact_match 
successor 
undefined 
predecessor 
exact_match 
successor 
undefined 
predecessor 
exact_match 
successor 
undefined 
predecessor 
exact_match 
successor 
undefined 
predecessor 
exact_match 
successor 

Definition at line 36 of file 052-binary_tree04.cpp.

◆ find_mode [2/7]

template<typename ElementType >
enum class binary_node::find_mode : int
strong
Enumerator
undefined 
predecessor 
exact_match 
successor 
undefined 
predecessor 
exact_match 
successor 
undefined 
predecessor 
exact_match 
successor 
undefined 
predecessor 
exact_match 
successor 
undefined 
predecessor 
exact_match 
successor 
undefined 
predecessor 
exact_match 
successor 
undefined 
predecessor 
exact_match 
successor 

Definition at line 36 of file 053-binary_tree05.cpp.

◆ find_mode [3/7]

template<typename ElementType >
enum class binary_node::find_mode : int
strong
Enumerator
undefined 
predecessor 
exact_match 
successor 
undefined 
predecessor 
exact_match 
successor 
undefined 
predecessor 
exact_match 
successor 
undefined 
predecessor 
exact_match 
successor 
undefined 
predecessor 
exact_match 
successor 
undefined 
predecessor 
exact_match 
successor 
undefined 
predecessor 
exact_match 
successor 

Definition at line 36 of file 054-binary_tree06.cpp.

◆ find_mode [4/7]

template<typename ElementType >
enum class binary_node::find_mode : int
strong
Enumerator
undefined 
predecessor 
exact_match 
successor 
undefined 
predecessor 
exact_match 
successor 
undefined 
predecessor 
exact_match 
successor 
undefined 
predecessor 
exact_match 
successor 
undefined 
predecessor 
exact_match 
successor 
undefined 
predecessor 
exact_match 
successor 
undefined 
predecessor 
exact_match 
successor 

Definition at line 36 of file 055-binary_tree07.cpp.

◆ find_mode [5/7]

template<typename ElementType >
enum class binary_node::find_mode : int
strong
Enumerator
undefined 
predecessor 
exact_match 
successor 
undefined 
predecessor 
exact_match 
successor 
undefined 
predecessor 
exact_match 
successor 
undefined 
predecessor 
exact_match 
successor 
undefined 
predecessor 
exact_match 
successor 
undefined 
predecessor 
exact_match 
successor 
undefined 
predecessor 
exact_match 
successor 

Definition at line 36 of file 056-binary_tree08.cpp.

◆ find_mode [6/7]

template<typename ElementType >
enum class binary_node::find_mode : int
strong
Enumerator
undefined 
predecessor 
exact_match 
successor 
undefined 
predecessor 
exact_match 
successor 
undefined 
predecessor 
exact_match 
successor 
undefined 
predecessor 
exact_match 
successor 
undefined 
predecessor 
exact_match 
successor 
undefined 
predecessor 
exact_match 
successor 
undefined 
predecessor 
exact_match 
successor 

Definition at line 36 of file 057-binary_tree09.cpp.

◆ find_mode [7/7]

template<typename ElementType >
enum class binary_node::find_mode : int
strong
Enumerator
undefined 
predecessor 
exact_match 
successor 
undefined 
predecessor 
exact_match 
successor 
undefined 
predecessor 
exact_match 
successor 
undefined 
predecessor 
exact_match 
successor 
undefined 
predecessor 
exact_match 
successor 
undefined 
predecessor 
exact_match 
successor 
undefined 
predecessor 
exact_match 
successor 

Definition at line 36 of file 058-binary_tree10.cpp.

◆ visit_mode [1/10]

template<typename ElementType >
enum class binary_node::visit_mode : int
strong
Enumerator
pre_order 
in_order 
ascending_order 
post_order 
descending_order 
pre_order 
in_order 
ascending_order 
post_order 
descending_order 
pre_order 
in_order 
ascending_order 
post_order 
descending_order 
undefined 
pre_order 
in_order 
ascending_order 
post_order 
descending_order 
undefined 
pre_order 
in_order 
ascending_order 
post_order 
descending_order 
undefined 
pre_order 
in_order 
ascending_order 
post_order 
descending_order 
undefined 
pre_order 
in_order 
ascending_order 
post_order 
descending_order 
undefined 
pre_order 
in_order 
ascending_order 
post_order 
descending_order 
undefined 
pre_order 
in_order 
ascending_order 
post_order 
descending_order 
undefined 
pre_order 
in_order 
ascending_order 
post_order 
descending_order 

Definition at line 15 of file 049-binary_tree01.cpp.

◆ visit_mode [2/10]

template<typename ElementType >
enum class binary_node::visit_mode : int
strong
Enumerator
pre_order 
in_order 
ascending_order 
post_order 
descending_order 
pre_order 
in_order 
ascending_order 
post_order 
descending_order 
pre_order 
in_order 
ascending_order 
post_order 
descending_order 
undefined 
pre_order 
in_order 
ascending_order 
post_order 
descending_order 
undefined 
pre_order 
in_order 
ascending_order 
post_order 
descending_order 
undefined 
pre_order 
in_order 
ascending_order 
post_order 
descending_order 
undefined 
pre_order 
in_order 
ascending_order 
post_order 
descending_order 
undefined 
pre_order 
in_order 
ascending_order 
post_order 
descending_order 
undefined 
pre_order 
in_order 
ascending_order 
post_order 
descending_order 
undefined 
pre_order 
in_order 
ascending_order 
post_order 
descending_order 

Definition at line 18 of file 050-binary_tree02.cpp.

◆ visit_mode [3/10]

template<typename ElementType >
enum class binary_node::visit_mode : int
strong
Enumerator
pre_order 
in_order 
ascending_order 
post_order 
descending_order 
pre_order 
in_order 
ascending_order 
post_order 
descending_order 
pre_order 
in_order 
ascending_order 
post_order 
descending_order 
undefined 
pre_order 
in_order 
ascending_order 
post_order 
descending_order 
undefined 
pre_order 
in_order 
ascending_order 
post_order 
descending_order 
undefined 
pre_order 
in_order 
ascending_order 
post_order 
descending_order 
undefined 
pre_order 
in_order 
ascending_order 
post_order 
descending_order 
undefined 
pre_order 
in_order 
ascending_order 
post_order 
descending_order 
undefined 
pre_order 
in_order 
ascending_order 
post_order 
descending_order 
undefined 
pre_order 
in_order 
ascending_order 
post_order 
descending_order 

Definition at line 33 of file 051-binary_tree03.cpp.

◆ visit_mode [4/10]

template<typename ElementType >
enum class binary_node::visit_mode : int
strong
Enumerator
pre_order 
in_order 
ascending_order 
post_order 
descending_order 
pre_order 
in_order 
ascending_order 
post_order 
descending_order 
pre_order 
in_order 
ascending_order 
post_order 
descending_order 
undefined 
pre_order 
in_order 
ascending_order 
post_order 
descending_order 
undefined 
pre_order 
in_order 
ascending_order 
post_order 
descending_order 
undefined 
pre_order 
in_order 
ascending_order 
post_order 
descending_order 
undefined 
pre_order 
in_order 
ascending_order 
post_order 
descending_order 
undefined 
pre_order 
in_order 
ascending_order 
post_order 
descending_order 
undefined 
pre_order 
in_order 
ascending_order 
post_order 
descending_order 
undefined 
pre_order 
in_order 
ascending_order 
post_order 
descending_order 

Definition at line 33 of file 052-binary_tree04.cpp.

◆ visit_mode [5/10]

template<typename ElementType >
enum class binary_node::visit_mode : int
strong
Enumerator
pre_order 
in_order 
ascending_order 
post_order 
descending_order 
pre_order 
in_order 
ascending_order 
post_order 
descending_order 
pre_order 
in_order 
ascending_order 
post_order 
descending_order 
undefined 
pre_order 
in_order 
ascending_order 
post_order 
descending_order 
undefined 
pre_order 
in_order 
ascending_order 
post_order 
descending_order 
undefined 
pre_order 
in_order 
ascending_order 
post_order 
descending_order 
undefined 
pre_order 
in_order 
ascending_order 
post_order 
descending_order 
undefined 
pre_order 
in_order 
ascending_order 
post_order 
descending_order 
undefined 
pre_order 
in_order 
ascending_order 
post_order 
descending_order 
undefined 
pre_order 
in_order 
ascending_order 
post_order 
descending_order 

Definition at line 33 of file 053-binary_tree05.cpp.

◆ visit_mode [6/10]

template<typename ElementType >
enum class binary_node::visit_mode : int
strong
Enumerator
pre_order 
in_order 
ascending_order 
post_order 
descending_order 
pre_order 
in_order 
ascending_order 
post_order 
descending_order 
pre_order 
in_order 
ascending_order 
post_order 
descending_order 
undefined 
pre_order 
in_order 
ascending_order 
post_order 
descending_order 
undefined 
pre_order 
in_order 
ascending_order 
post_order 
descending_order 
undefined 
pre_order 
in_order 
ascending_order 
post_order 
descending_order 
undefined 
pre_order 
in_order 
ascending_order 
post_order 
descending_order 
undefined 
pre_order 
in_order 
ascending_order 
post_order 
descending_order 
undefined 
pre_order 
in_order 
ascending_order 
post_order 
descending_order 
undefined 
pre_order 
in_order 
ascending_order 
post_order 
descending_order 

Definition at line 33 of file 054-binary_tree06.cpp.

◆ visit_mode [7/10]

template<typename ElementType >
enum class binary_node::visit_mode : int
strong
Enumerator
pre_order 
in_order 
ascending_order 
post_order 
descending_order 
pre_order 
in_order 
ascending_order 
post_order 
descending_order 
pre_order 
in_order 
ascending_order 
post_order 
descending_order 
undefined 
pre_order 
in_order 
ascending_order 
post_order 
descending_order 
undefined 
pre_order 
in_order 
ascending_order 
post_order 
descending_order 
undefined 
pre_order 
in_order 
ascending_order 
post_order 
descending_order 
undefined 
pre_order 
in_order 
ascending_order 
post_order 
descending_order 
undefined 
pre_order 
in_order 
ascending_order 
post_order 
descending_order 
undefined 
pre_order 
in_order 
ascending_order 
post_order 
descending_order 
undefined 
pre_order 
in_order 
ascending_order 
post_order 
descending_order 

Definition at line 33 of file 055-binary_tree07.cpp.

◆ visit_mode [8/10]

template<typename ElementType >
enum class binary_node::visit_mode : int
strong
Enumerator
pre_order 
in_order 
ascending_order 
post_order 
descending_order 
pre_order 
in_order 
ascending_order 
post_order 
descending_order 
pre_order 
in_order 
ascending_order 
post_order 
descending_order 
undefined 
pre_order 
in_order 
ascending_order 
post_order 
descending_order 
undefined 
pre_order 
in_order 
ascending_order 
post_order 
descending_order 
undefined 
pre_order 
in_order 
ascending_order 
post_order 
descending_order 
undefined 
pre_order 
in_order 
ascending_order 
post_order 
descending_order 
undefined 
pre_order 
in_order 
ascending_order 
post_order 
descending_order 
undefined 
pre_order 
in_order 
ascending_order 
post_order 
descending_order 
undefined 
pre_order 
in_order 
ascending_order 
post_order 
descending_order 

Definition at line 33 of file 056-binary_tree08.cpp.

◆ visit_mode [9/10]

template<typename ElementType >
enum class binary_node::visit_mode : int
strong
Enumerator
pre_order 
in_order 
ascending_order 
post_order 
descending_order 
pre_order 
in_order 
ascending_order 
post_order 
descending_order 
pre_order 
in_order 
ascending_order 
post_order 
descending_order 
undefined 
pre_order 
in_order 
ascending_order 
post_order 
descending_order 
undefined 
pre_order 
in_order 
ascending_order 
post_order 
descending_order 
undefined 
pre_order 
in_order 
ascending_order 
post_order 
descending_order 
undefined 
pre_order 
in_order 
ascending_order 
post_order 
descending_order 
undefined 
pre_order 
in_order 
ascending_order 
post_order 
descending_order 
undefined 
pre_order 
in_order 
ascending_order 
post_order 
descending_order 
undefined 
pre_order 
in_order 
ascending_order 
post_order 
descending_order 

Definition at line 33 of file 057-binary_tree09.cpp.

◆ visit_mode [10/10]

template<typename ElementType >
enum class binary_node::visit_mode : int
strong
Enumerator
pre_order 
in_order 
ascending_order 
post_order 
descending_order 
pre_order 
in_order 
ascending_order 
post_order 
descending_order 
pre_order 
in_order 
ascending_order 
post_order 
descending_order 
undefined 
pre_order 
in_order 
ascending_order 
post_order 
descending_order 
undefined 
pre_order 
in_order 
ascending_order 
post_order 
descending_order 
undefined 
pre_order 
in_order 
ascending_order 
post_order 
descending_order 
undefined 
pre_order 
in_order 
ascending_order 
post_order 
descending_order 
undefined 
pre_order 
in_order 
ascending_order 
post_order 
descending_order 
undefined 
pre_order 
in_order 
ascending_order 
post_order 
descending_order 
undefined 
pre_order 
in_order 
ascending_order 
post_order 
descending_order 

Definition at line 33 of file 058-binary_tree10.cpp.

Constructor & Destructor Documentation

◆ binary_node() [1/10]

template<typename ElementType >
binary_node< ElementType >::binary_node ( ElementType  value = ElementType{},
binary_node< ElementType > *  parent = nullptr 
)
inline

Definition at line 27 of file 049-binary_tree01.cpp.

◆ binary_node() [2/10]

template<typename ElementType >
binary_node< ElementType >::binary_node ( ElementType  value = ElementType{},
binary_node< ElementType > *  parent = nullptr 
)
inline

Definition at line 107 of file 050-binary_tree02.cpp.

◆ binary_node() [3/10]

template<typename ElementType >
binary_node< ElementType >::binary_node ( ElementType  value = ElementType{},
binary_node< ElementType > *  parent = nullptr 
)
inline

Definition at line 194 of file 051-binary_tree03.cpp.

◆ binary_node() [4/10]

template<typename ElementType >
binary_node< ElementType >::binary_node ( ElementType  value = ElementType{},
binary_node< ElementType > *  parent = nullptr 
)
inline

Definition at line 189 of file 052-binary_tree04.cpp.

◆ binary_node() [5/10]

template<typename ElementType >
binary_node< ElementType >::binary_node ( ElementType  value = ElementType{},
binary_node< ElementType > *  parent = nullptr 
)
inline

Definition at line 189 of file 053-binary_tree05.cpp.

◆ binary_node() [6/10]

template<typename ElementType >
binary_node< ElementType >::binary_node ( ElementType  value = ElementType{},
binary_node< ElementType > *  parent = nullptr 
)
inline

Definition at line 189 of file 054-binary_tree06.cpp.

◆ binary_node() [7/10]

template<typename ElementType >
binary_node< ElementType >::binary_node ( ElementType  value = ElementType{},
binary_node< ElementType > *  parent = nullptr 
)
inline

Definition at line 215 of file 055-binary_tree07.cpp.

◆ binary_node() [8/10]

template<typename ElementType >
binary_node< ElementType >::binary_node ( ElementType  value = ElementType{},
binary_node< ElementType > *  parent = nullptr 
)
inline

Definition at line 216 of file 056-binary_tree08.cpp.

◆ binary_node() [9/10]

template<typename ElementType >
binary_node< ElementType >::binary_node ( ElementType  value = ElementType{},
binary_node< ElementType > *  parent = nullptr 
)
inline

Definition at line 275 of file 057-binary_tree09.cpp.

◆ binary_node() [10/10]

template<typename ElementType >
binary_node< ElementType >::binary_node ( ElementType  value = ElementType{},
binary_node< ElementType > *  parent = nullptr 
)
inline

Definition at line 275 of file 058-binary_tree10.cpp.

Member Function Documentation

◆ build_digraph() [1/9]

template<typename ElementType >
string_t binary_node< ElementType >::build_digraph ( )
inline

Definition at line 72 of file 050-binary_tree02.cpp.

Here is the call graph for this function:

◆ build_digraph() [2/9]

template<typename ElementType >
string_t binary_node< ElementType >::build_digraph ( )
inline

Definition at line 159 of file 051-binary_tree03.cpp.

Here is the call graph for this function:

◆ build_digraph() [3/9]

template<typename ElementType >
string_t binary_node< ElementType >::build_digraph ( )
inline

Definition at line 154 of file 052-binary_tree04.cpp.

Here is the call graph for this function:

◆ build_digraph() [4/9]

template<typename ElementType >
string_t binary_node< ElementType >::build_digraph ( )
inline

Definition at line 154 of file 053-binary_tree05.cpp.

Here is the call graph for this function:

◆ build_digraph() [5/9]

template<typename ElementType >
string_t binary_node< ElementType >::build_digraph ( )
inline

Definition at line 154 of file 054-binary_tree06.cpp.

Here is the call graph for this function:

◆ build_digraph() [6/9]

template<typename ElementType >
string_t binary_node< ElementType >::build_digraph ( )
inline

Definition at line 154 of file 055-binary_tree07.cpp.

Here is the call graph for this function:

◆ build_digraph() [7/9]

template<typename ElementType >
string_t binary_node< ElementType >::build_digraph ( )
inline

Definition at line 154 of file 056-binary_tree08.cpp.

Here is the call graph for this function:

◆ build_digraph() [8/9]

template<typename ElementType >
string_t binary_node< ElementType >::build_digraph ( )
inline

Definition at line 213 of file 057-binary_tree09.cpp.

Here is the call graph for this function:

◆ build_digraph() [9/9]

template<typename ElementType >
string_t binary_node< ElementType >::build_digraph ( )
inline

Definition at line 213 of file 058-binary_tree10.cpp.

Here is the call graph for this function:

◆ find() [1/16]

template<typename ElementType >
binary_node * binary_node< ElementType >::find ( ElementType  value)
inline

Definition at line 90 of file 050-binary_tree02.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ find() [2/16]

template<typename ElementType >
binary_node * binary_node< ElementType >::find ( ElementType  value)
inline

Definition at line 177 of file 051-binary_tree03.cpp.

Here is the call graph for this function:

◆ find() [3/16]

template<typename ElementType >
binary_node * binary_node< ElementType >::find ( ElementType  value)
inline

Definition at line 172 of file 052-binary_tree04.cpp.

Here is the call graph for this function:

◆ find() [4/16]

template<typename ElementType >
binary_node * binary_node< ElementType >::find ( ElementType  value)
inline

Definition at line 172 of file 053-binary_tree05.cpp.

Here is the call graph for this function:

◆ find() [5/16]

template<typename ElementType >
binary_node * binary_node< ElementType >::find ( ElementType  value)
inline

Definition at line 172 of file 054-binary_tree06.cpp.

Here is the call graph for this function:

◆ find() [6/16]

template<typename ElementType >
binary_node * binary_node< ElementType >::find ( ElementType  value)
inline

Definition at line 193 of file 055-binary_tree07.cpp.

Here is the call graph for this function:

◆ find() [7/16]

template<typename ElementType >
binary_node * binary_node< ElementType >::find ( ElementType  value)
inline

Definition at line 187 of file 056-binary_tree08.cpp.

Here is the call graph for this function:

◆ find() [8/16]

template<typename ElementType >
binary_node * binary_node< ElementType >::find ( ElementType  value)
inline

Definition at line 246 of file 057-binary_tree09.cpp.

Here is the call graph for this function:

◆ find() [9/16]

template<typename ElementType >
binary_node * binary_node< ElementType >::find ( ElementType  value)
inline

Definition at line 246 of file 058-binary_tree10.cpp.

Here is the call graph for this function:

◆ find() [10/16]

template<typename ElementType >
binary_node * binary_node< ElementType >::find ( ElementType  value,
find_mode  fmode,
visit_mode  vmode = visit_mode::ascending_order 
)
inline

Definition at line 318 of file 052-binary_tree04.cpp.

Here is the call graph for this function:

◆ find() [11/16]

template<typename ElementType >
binary_node * binary_node< ElementType >::find ( ElementType  value,
find_mode  fmode,
visit_mode  vmode = visit_mode::ascending_order 
)
inline

Definition at line 352 of file 053-binary_tree05.cpp.

Here is the call graph for this function:

◆ find() [12/16]

template<typename ElementType >
binary_node * binary_node< ElementType >::find ( ElementType  value,
find_mode  fmode,
visit_mode  vmode = visit_mode::ascending_order 
)
inline

Definition at line 351 of file 054-binary_tree06.cpp.

Here is the call graph for this function:

◆ find() [13/16]

template<typename ElementType >
binary_node * binary_node< ElementType >::find ( ElementType  value,
find_mode  fmode,
visit_mode  vmode = visit_mode::ascending_order 
)
inline

Definition at line 377 of file 055-binary_tree07.cpp.

Here is the call graph for this function:

◆ find() [14/16]

template<typename ElementType >
binary_node * binary_node< ElementType >::find ( ElementType  value,
find_mode  fmode,
visit_mode  vmode = visit_mode::ascending_order 
)
inline

Definition at line 378 of file 056-binary_tree08.cpp.

Here is the call graph for this function:

◆ find() [15/16]

template<typename ElementType >
binary_node * binary_node< ElementType >::find ( ElementType  value,
find_mode  fmode,
visit_mode  vmode = visit_mode::ascending_order 
)
inline

Definition at line 437 of file 057-binary_tree09.cpp.

Here is the call graph for this function:

◆ find() [16/16]

template<typename ElementType >
binary_node * binary_node< ElementType >::find ( ElementType  value,
find_mode  fmode,
visit_mode  vmode = visit_mode::ascending_order 
)
inline

Definition at line 437 of file 058-binary_tree10.cpp.

Here is the call graph for this function:

◆ find_raw() [1/3]

template<typename ElementType >
void binary_node< ElementType >::find_raw ( ElementType  value)
inline

Definition at line 171 of file 056-binary_tree08.cpp.

Here is the caller graph for this function:

◆ find_raw() [2/3]

template<typename ElementType >
void binary_node< ElementType >::find_raw ( ElementType  value)
inline

Definition at line 230 of file 057-binary_tree09.cpp.

◆ find_raw() [3/3]

template<typename ElementType >
void binary_node< ElementType >::find_raw ( ElementType  value)
inline

Definition at line 230 of file 058-binary_tree10.cpp.

◆ get() [1/9]

template<typename ElementType >
ElementType binary_node< ElementType >::get ( ) const
inline

Definition at line 85 of file 050-binary_tree02.cpp.

Here is the caller graph for this function:

◆ get() [2/9]

template<typename ElementType >
const ElementType & binary_node< ElementType >::get ( ) const
inline

Definition at line 172 of file 051-binary_tree03.cpp.

◆ get() [3/9]

template<typename ElementType >
const ElementType & binary_node< ElementType >::get ( ) const
inline

Definition at line 167 of file 052-binary_tree04.cpp.

◆ get() [4/9]

template<typename ElementType >
const ElementType & binary_node< ElementType >::get ( ) const
inline

Definition at line 167 of file 053-binary_tree05.cpp.

◆ get() [5/9]

template<typename ElementType >
const ElementType & binary_node< ElementType >::get ( ) const
inline

Definition at line 167 of file 054-binary_tree06.cpp.

◆ get() [6/9]

template<typename ElementType >
const ElementType & binary_node< ElementType >::get ( ) const
inline

Definition at line 167 of file 055-binary_tree07.cpp.

◆ get() [7/9]

template<typename ElementType >
const ElementType & binary_node< ElementType >::get ( ) const
inline

Definition at line 167 of file 056-binary_tree08.cpp.

◆ get() [8/9]

template<typename ElementType >
const ElementType & binary_node< ElementType >::get ( ) const
inline

Definition at line 226 of file 057-binary_tree09.cpp.

◆ get() [9/9]

template<typename ElementType >
const ElementType & binary_node< ElementType >::get ( ) const
inline

Definition at line 226 of file 058-binary_tree10.cpp.

◆ get_child_status() [1/8]

template<typename ElementType >
child_status binary_node< ElementType >::get_child_status ( binary_node< ElementType > *  child)
inline

Definition at line 93 of file 051-binary_tree03.cpp.

Here is the caller graph for this function:

◆ get_child_status() [2/8]

template<typename ElementType >
child_status binary_node< ElementType >::get_child_status ( binary_node< ElementType > *  child)
inline

Definition at line 88 of file 052-binary_tree04.cpp.

◆ get_child_status() [3/8]

template<typename ElementType >
child_status binary_node< ElementType >::get_child_status ( binary_node< ElementType > *  child)
inline

Definition at line 88 of file 053-binary_tree05.cpp.

◆ get_child_status() [4/8]

template<typename ElementType >
child_status binary_node< ElementType >::get_child_status ( binary_node< ElementType > *  child)
inline

Definition at line 88 of file 054-binary_tree06.cpp.

◆ get_child_status() [5/8]

template<typename ElementType >
child_status binary_node< ElementType >::get_child_status ( binary_node< ElementType > *  child)
inline

Definition at line 88 of file 055-binary_tree07.cpp.

◆ get_child_status() [6/8]

template<typename ElementType >
child_status binary_node< ElementType >::get_child_status ( binary_node< ElementType > *  child)
inline

Definition at line 88 of file 056-binary_tree08.cpp.

◆ get_child_status() [7/8]

template<typename ElementType >
child_status binary_node< ElementType >::get_child_status ( binary_node< ElementType > *  child)
inline

Definition at line 147 of file 057-binary_tree09.cpp.

◆ get_child_status() [8/8]

template<typename ElementType >
child_status binary_node< ElementType >::get_child_status ( binary_node< ElementType > *  child)
inline

Definition at line 147 of file 058-binary_tree10.cpp.

◆ get_node_definition() [1/9]

template<typename ElementType >
tpf::sstream & binary_node< ElementType >::get_node_definition ( tpf::sstream os)
inline

Definition at line 38 of file 050-binary_tree02.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ get_node_definition() [2/9]

template<typename ElementType >
tpf::sstream & binary_node< ElementType >::get_node_definition ( tpf::sstream os)
inline

Definition at line 111 of file 051-binary_tree03.cpp.

Here is the call graph for this function:

◆ get_node_definition() [3/9]

template<typename ElementType >
tpf::sstream & binary_node< ElementType >::get_node_definition ( tpf::sstream os)
inline

Definition at line 106 of file 052-binary_tree04.cpp.

Here is the call graph for this function:

◆ get_node_definition() [4/9]

template<typename ElementType >
tpf::sstream & binary_node< ElementType >::get_node_definition ( tpf::sstream os)
inline

Definition at line 106 of file 053-binary_tree05.cpp.

Here is the call graph for this function:

◆ get_node_definition() [5/9]

template<typename ElementType >
tpf::sstream & binary_node< ElementType >::get_node_definition ( tpf::sstream os)
inline

Definition at line 106 of file 054-binary_tree06.cpp.

Here is the call graph for this function:

◆ get_node_definition() [6/9]

template<typename ElementType >
tpf::sstream & binary_node< ElementType >::get_node_definition ( tpf::sstream os)
inline

Definition at line 106 of file 055-binary_tree07.cpp.

Here is the call graph for this function:

◆ get_node_definition() [7/9]

template<typename ElementType >
tpf::sstream & binary_node< ElementType >::get_node_definition ( tpf::sstream os)
inline

Definition at line 106 of file 056-binary_tree08.cpp.

Here is the call graph for this function:

◆ get_node_definition() [8/9]

template<typename ElementType >
tpf::sstream & binary_node< ElementType >::get_node_definition ( tpf::sstream os)
inline

Definition at line 165 of file 057-binary_tree09.cpp.

Here is the call graph for this function:

◆ get_node_definition() [9/9]

template<typename ElementType >
tpf::sstream & binary_node< ElementType >::get_node_definition ( tpf::sstream os)
inline

Definition at line 165 of file 058-binary_tree10.cpp.

Here is the call graph for this function:

◆ get_node_name() [1/9]

template<typename ElementType >
tpf::sstream & binary_node< ElementType >::get_node_name ( tpf::sstream os)
inline

Definition at line 32 of file 050-binary_tree02.cpp.

Here is the caller graph for this function:

◆ get_node_name() [2/9]

template<typename ElementType >
tpf::sstream & binary_node< ElementType >::get_node_name ( tpf::sstream os)
inline

Definition at line 105 of file 051-binary_tree03.cpp.

◆ get_node_name() [3/9]

template<typename ElementType >
tpf::sstream & binary_node< ElementType >::get_node_name ( tpf::sstream os)
inline

Definition at line 100 of file 052-binary_tree04.cpp.

◆ get_node_name() [4/9]

template<typename ElementType >
tpf::sstream & binary_node< ElementType >::get_node_name ( tpf::sstream os)
inline

Definition at line 100 of file 053-binary_tree05.cpp.

◆ get_node_name() [5/9]

template<typename ElementType >
tpf::sstream & binary_node< ElementType >::get_node_name ( tpf::sstream os)
inline

Definition at line 100 of file 054-binary_tree06.cpp.

◆ get_node_name() [6/9]

template<typename ElementType >
tpf::sstream & binary_node< ElementType >::get_node_name ( tpf::sstream os)
inline

Definition at line 100 of file 055-binary_tree07.cpp.

◆ get_node_name() [7/9]

template<typename ElementType >
tpf::sstream & binary_node< ElementType >::get_node_name ( tpf::sstream os)
inline

Definition at line 100 of file 056-binary_tree08.cpp.

◆ get_node_name() [8/9]

template<typename ElementType >
tpf::sstream & binary_node< ElementType >::get_node_name ( tpf::sstream os)
inline

Definition at line 159 of file 057-binary_tree09.cpp.

◆ get_node_name() [9/9]

template<typename ElementType >
tpf::sstream & binary_node< ElementType >::get_node_name ( tpf::sstream os)
inline

Definition at line 159 of file 058-binary_tree10.cpp.

◆ graft() [1/6]

template<typename ElementType >
bool binary_node< ElementType >::graft ( node_ptr_t node_ptr)
inline

Definition at line 238 of file 054-binary_tree06.cpp.

◆ graft() [2/6]

template<typename ElementType >
bool binary_node< ElementType >::graft ( node_ptr_t node_ptr)
inline

Definition at line 264 of file 055-binary_tree07.cpp.

◆ graft() [3/6]

template<typename ElementType >
bool binary_node< ElementType >::graft ( node_ptr_t node_ptr)
inline

Definition at line 265 of file 056-binary_tree08.cpp.

◆ graft() [4/6]

template<typename ElementType >
bool binary_node< ElementType >::graft ( node_ptr_t node_ptr)
inline

Definition at line 324 of file 057-binary_tree09.cpp.

◆ graft() [5/6]

template<typename ElementType >
bool binary_node< ElementType >::graft ( node_ptr_t node_ptr)
inline

Definition at line 324 of file 058-binary_tree10.cpp.

◆ graft() [6/6]

template<typename ElementType >
bool binary_node< ElementType >::graft ( node_ptr_t  node_ptr)
inline

Definition at line 237 of file 053-binary_tree05.cpp.

◆ height() [1/8]

template<typename ElementType >
int binary_node< ElementType >::height ( bool  bRecalculate = false) const
inline

Definition at line 50 of file 051-binary_tree03.cpp.

Here is the caller graph for this function:

◆ height() [2/8]

template<typename ElementType >
int binary_node< ElementType >::height ( bool  bRecalculate = false) const
inline

Definition at line 52 of file 052-binary_tree04.cpp.

◆ height() [3/8]

template<typename ElementType >
int binary_node< ElementType >::height ( bool  bRecalculate = false) const
inline

Definition at line 52 of file 053-binary_tree05.cpp.

◆ height() [4/8]

template<typename ElementType >
int binary_node< ElementType >::height ( bool  bRecalculate = false) const
inline

Definition at line 52 of file 054-binary_tree06.cpp.

◆ height() [5/8]

template<typename ElementType >
int binary_node< ElementType >::height ( bool  bRecalculate = false) const
inline

Definition at line 52 of file 055-binary_tree07.cpp.

◆ height() [6/8]

template<typename ElementType >
int binary_node< ElementType >::height ( bool  bRecalculate = false) const
inline

Definition at line 52 of file 056-binary_tree08.cpp.

◆ height() [7/8]

template<typename ElementType >
int binary_node< ElementType >::height ( bool  bRecalculate = false) const
inline

Definition at line 111 of file 057-binary_tree09.cpp.

◆ height() [8/8]

template<typename ElementType >
int binary_node< ElementType >::height ( bool  bRecalculate = false) const
inline

Definition at line 111 of file 058-binary_tree10.cpp.

◆ insert() [1/19]

template<typename ElementType >
bool binary_node< ElementType >::insert ( ElementType  value)
inline

Definition at line 32 of file 049-binary_tree01.cpp.

Here is the caller graph for this function:

◆ insert() [2/19]

template<typename ElementType >
bool binary_node< ElementType >::insert ( ElementType  value)
inline

Definition at line 112 of file 050-binary_tree02.cpp.

◆ insert() [3/19]

template<typename ElementType >
template<typename Type , typename... Types>
enable_if_all_types_are_the_same_t< bool, ElementType, Type, Types... > binary_node< ElementType >::insert ( Type &&  arg,
Types &&...  args 
)
inline

Definition at line 248 of file 051-binary_tree03.cpp.

Here is the call graph for this function:

◆ insert() [4/19]

template<typename ElementType >
template<typename Type , typename... Types>
enable_if_all_types_are_the_same_t< bool, ElementType, Type, Types... > binary_node< ElementType >::insert ( Type &&  arg,
Types &&...  args 
)
inline

Definition at line 243 of file 052-binary_tree04.cpp.

Here is the call graph for this function:

◆ insert() [5/19]

template<typename ElementType >
template<typename Type , typename... Types>
enable_if_all_types_are_the_same_t< bool, ElementType, Type, Types... > binary_node< ElementType >::insert ( Type &&  arg,
Types &&...  args 
)
inline

Definition at line 277 of file 053-binary_tree05.cpp.

Here is the call graph for this function:

◆ insert() [6/19]

template<typename ElementType >
template<typename Type , typename... Types>
enable_if_all_types_are_the_same_t< bool, ElementType, Type, Types... > binary_node< ElementType >::insert ( Type &&  arg,
Types &&...  args 
)
inline

Definition at line 276 of file 054-binary_tree06.cpp.

Here is the call graph for this function:

◆ insert() [7/19]

template<typename ElementType >
template<typename Type , typename... Types>
enable_if_all_types_are_the_same_t< bool, ElementType, Type, Types... > binary_node< ElementType >::insert ( Type &&  arg,
Types &&...  args 
)
inline

Definition at line 302 of file 055-binary_tree07.cpp.

Here is the call graph for this function:

◆ insert() [8/19]

template<typename ElementType >
template<typename Type , typename... Types>
enable_if_all_types_are_the_same_t< bool, ElementType, Type, Types... > binary_node< ElementType >::insert ( Type &&  arg,
Types &&...  args 
)
inline

Definition at line 303 of file 056-binary_tree08.cpp.

Here is the call graph for this function:

◆ insert() [9/19]

template<typename ElementType >
template<typename Type , typename... Types>
enable_if_all_types_are_the_same_t< bool, ElementType, Type, Types... > binary_node< ElementType >::insert ( Type &&  arg,
Types &&...  args 
)
inline

Definition at line 362 of file 057-binary_tree09.cpp.

Here is the call graph for this function:

◆ insert() [10/19]

template<typename ElementType >
template<typename Type , typename... Types>
enable_if_all_types_are_the_same_t< bool, ElementType, Type, Types... > binary_node< ElementType >::insert ( Type &&  arg,
Types &&...  args 
)
inline

Definition at line 362 of file 058-binary_tree10.cpp.

Here is the call graph for this function:

◆ insert() [11/19]

template<typename ElementType >
template<typename Type >
enable_if_all_types_are_the_same_t< bool, ElementType, Type > binary_node< ElementType >::insert ( Type &&  value)
inline

Definition at line 202 of file 051-binary_tree03.cpp.

◆ insert() [12/19]

template<typename ElementType >
template<typename Type >
enable_if_all_types_are_the_same_t< bool, ElementType, Type > binary_node< ElementType >::insert ( Type &&  value)
inline

Definition at line 197 of file 052-binary_tree04.cpp.

◆ insert() [13/19]

template<typename ElementType >
template<typename Type >
enable_if_all_types_are_the_same_t< bool, ElementType, Type > binary_node< ElementType >::insert ( Type &&  value)
inline

Definition at line 197 of file 053-binary_tree05.cpp.

◆ insert() [14/19]

template<typename ElementType >
template<typename Type >
enable_if_all_types_are_the_same_t< bool, ElementType, Type > binary_node< ElementType >::insert ( Type &&  value)
inline

Definition at line 197 of file 054-binary_tree06.cpp.

◆ insert() [15/19]

template<typename ElementType >
template<typename Type >
enable_if_all_types_are_the_same_t< bool, ElementType, Type > binary_node< ElementType >::insert ( Type &&  value)
inline

Definition at line 223 of file 055-binary_tree07.cpp.

◆ insert() [16/19]

template<typename ElementType >
template<typename Type >
enable_if_all_types_are_the_same_t< bool, ElementType, Type > binary_node< ElementType >::insert ( Type &&  value)
inline

Definition at line 224 of file 056-binary_tree08.cpp.

◆ insert() [17/19]

template<typename ElementType >
template<typename Type >
enable_if_all_types_are_the_same_t< bool, ElementType, Type > binary_node< ElementType >::insert ( Type &&  value)
inline

Definition at line 283 of file 057-binary_tree09.cpp.

◆ insert() [18/19]

template<typename ElementType >
template<typename Type >
enable_if_all_types_are_the_same_t< bool, ElementType, Type > binary_node< ElementType >::insert ( Type &&  value)
inline

Definition at line 283 of file 058-binary_tree10.cpp.

◆ insert() [19/19]

template<typename ElementType >
template<typename Type , typename... Types>
bool binary_node< ElementType >::insert ( Type  arg,
Types...  args 
)
inline

Definition at line 143 of file 050-binary_tree02.cpp.

Here is the call graph for this function:

◆ is_leaf_node() [1/5]

template<typename ElementType >
bool binary_node< ElementType >::is_leaf_node ( )
inline

Definition at line 391 of file 054-binary_tree06.cpp.

Here is the caller graph for this function:

◆ is_leaf_node() [2/5]

template<typename ElementType >
bool binary_node< ElementType >::is_leaf_node ( )
inline

Definition at line 417 of file 055-binary_tree07.cpp.

◆ is_leaf_node() [3/5]

template<typename ElementType >
bool binary_node< ElementType >::is_leaf_node ( )
inline

Definition at line 418 of file 056-binary_tree08.cpp.

◆ is_leaf_node() [4/5]

template<typename ElementType >
bool binary_node< ElementType >::is_leaf_node ( )
inline

Definition at line 477 of file 057-binary_tree09.cpp.

◆ is_leaf_node() [5/5]

template<typename ElementType >
bool binary_node< ElementType >::is_leaf_node ( )
inline

Definition at line 481 of file 058-binary_tree10.cpp.

◆ maximum() [1/3]

template<typename ElementType >
binary_node * binary_node< ElementType >::maximum ( )
inline

Definition at line 208 of file 056-binary_tree08.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ maximum() [2/3]

template<typename ElementType >
binary_node * binary_node< ElementType >::maximum ( )
inline

Definition at line 267 of file 057-binary_tree09.cpp.

Here is the call graph for this function:

◆ maximum() [3/3]

template<typename ElementType >
binary_node * binary_node< ElementType >::maximum ( )
inline

Definition at line 267 of file 058-binary_tree10.cpp.

Here is the call graph for this function:

◆ minimum() [1/3]

template<typename ElementType >
binary_node * binary_node< ElementType >::minimum ( )
inline

Definition at line 200 of file 056-binary_tree08.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ minimum() [2/3]

template<typename ElementType >
binary_node * binary_node< ElementType >::minimum ( )
inline

Definition at line 259 of file 057-binary_tree09.cpp.

Here is the call graph for this function:

◆ minimum() [3/3]

template<typename ElementType >
binary_node * binary_node< ElementType >::minimum ( )
inline

Definition at line 259 of file 058-binary_tree10.cpp.

Here is the call graph for this function:

◆ nearest_left_parent() [1/4]

template<typename ElementType >
binary_node * binary_node< ElementType >::nearest_left_parent ( binary_node< ElementType > *  child)
inline

Definition at line 60 of file 057-binary_tree09.cpp.

Here is the call graph for this function:

◆ nearest_left_parent() [2/4]

template<typename ElementType >
binary_node * binary_node< ElementType >::nearest_left_parent ( binary_node< ElementType > *  child)
inline

Definition at line 60 of file 058-binary_tree10.cpp.

Here is the call graph for this function:

◆ nearest_left_parent() [3/4]

template<typename ElementType >
binary_node * binary_node< ElementType >::nearest_left_parent ( ElementType  value)
inline

Definition at line 73 of file 057-binary_tree09.cpp.

Here is the call graph for this function:

◆ nearest_left_parent() [4/4]

template<typename ElementType >
binary_node * binary_node< ElementType >::nearest_left_parent ( ElementType  value)
inline

Definition at line 73 of file 058-binary_tree10.cpp.

Here is the call graph for this function:

◆ nearest_left_parent_raw() [1/2]

template<typename ElementType >
void binary_node< ElementType >::nearest_left_parent_raw ( binary_node< ElementType > *  child)
inline

Definition at line 52 of file 057-binary_tree09.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ nearest_left_parent_raw() [2/2]

template<typename ElementType >
void binary_node< ElementType >::nearest_left_parent_raw ( binary_node< ElementType > *  child)
inline

Definition at line 52 of file 058-binary_tree10.cpp.

Here is the call graph for this function:

◆ nearest_right_parent() [1/4]

template<typename ElementType >
binary_node * binary_node< ElementType >::nearest_right_parent ( binary_node< ElementType > *  child)
inline

Definition at line 90 of file 057-binary_tree09.cpp.

Here is the call graph for this function:

◆ nearest_right_parent() [2/4]

template<typename ElementType >
binary_node * binary_node< ElementType >::nearest_right_parent ( binary_node< ElementType > *  child)
inline

Definition at line 90 of file 058-binary_tree10.cpp.

Here is the call graph for this function:

◆ nearest_right_parent() [3/4]

template<typename ElementType >
binary_node * binary_node< ElementType >::nearest_right_parent ( ElementType  value)
inline

Definition at line 103 of file 057-binary_tree09.cpp.

Here is the call graph for this function:

◆ nearest_right_parent() [4/4]

template<typename ElementType >
binary_node * binary_node< ElementType >::nearest_right_parent ( ElementType  value)
inline

Definition at line 103 of file 058-binary_tree10.cpp.

Here is the call graph for this function:

◆ nearest_right_parent_raw() [1/2]

template<typename ElementType >
void binary_node< ElementType >::nearest_right_parent_raw ( binary_node< ElementType > *  child)
inline

Definition at line 82 of file 057-binary_tree09.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ nearest_right_parent_raw() [2/2]

template<typename ElementType >
void binary_node< ElementType >::nearest_right_parent_raw ( binary_node< ElementType > *  child)
inline

Definition at line 82 of file 058-binary_tree10.cpp.

Here is the call graph for this function:

◆ print_node() [1/9]

template<typename ElementType >
void binary_node< ElementType >::print_node ( tpf::sstream os)
inline

Definition at line 48 of file 050-binary_tree02.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ print_node() [2/9]

template<typename ElementType >
void binary_node< ElementType >::print_node ( tpf::sstream os)
inline

Definition at line 122 of file 051-binary_tree03.cpp.

Here is the call graph for this function:

◆ print_node() [3/9]

template<typename ElementType >
void binary_node< ElementType >::print_node ( tpf::sstream os)
inline

Definition at line 117 of file 052-binary_tree04.cpp.

Here is the call graph for this function:

◆ print_node() [4/9]

template<typename ElementType >
void binary_node< ElementType >::print_node ( tpf::sstream os)
inline

Definition at line 117 of file 053-binary_tree05.cpp.

Here is the call graph for this function:

◆ print_node() [5/9]

template<typename ElementType >
void binary_node< ElementType >::print_node ( tpf::sstream os)
inline

Definition at line 117 of file 054-binary_tree06.cpp.

Here is the call graph for this function:

◆ print_node() [6/9]

template<typename ElementType >
void binary_node< ElementType >::print_node ( tpf::sstream os)
inline

Definition at line 117 of file 055-binary_tree07.cpp.

Here is the call graph for this function:

◆ print_node() [7/9]

template<typename ElementType >
void binary_node< ElementType >::print_node ( tpf::sstream os)
inline

Definition at line 117 of file 056-binary_tree08.cpp.

Here is the call graph for this function:

◆ print_node() [8/9]

template<typename ElementType >
void binary_node< ElementType >::print_node ( tpf::sstream os)
inline

Definition at line 176 of file 057-binary_tree09.cpp.

Here is the call graph for this function:

◆ print_node() [9/9]

template<typename ElementType >
void binary_node< ElementType >::print_node ( tpf::sstream os)
inline

Definition at line 176 of file 058-binary_tree10.cpp.

Here is the call graph for this function:

◆ release_child() [1/5]

template<typename ElementType >
node_ptr_t binary_node< ElementType >::release_child ( binary_node< ElementType > *  ptr)
inline

Definition at line 397 of file 054-binary_tree06.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ release_child() [2/5]

template<typename ElementType >
node_ptr_t binary_node< ElementType >::release_child ( binary_node< ElementType > *  ptr)
inline

Definition at line 423 of file 055-binary_tree07.cpp.

Here is the call graph for this function:

◆ release_child() [3/5]

template<typename ElementType >
node_ptr_t binary_node< ElementType >::release_child ( binary_node< ElementType > *  ptr)
inline

Definition at line 424 of file 056-binary_tree08.cpp.

Here is the call graph for this function:

◆ release_child() [4/5]

template<typename ElementType >
node_ptr_t binary_node< ElementType >::release_child ( binary_node< ElementType > *  ptr)
inline

Definition at line 483 of file 057-binary_tree09.cpp.

Here is the call graph for this function:

◆ release_child() [5/5]

template<typename ElementType >
node_ptr_t binary_node< ElementType >::release_child ( binary_node< ElementType > *  ptr)
inline

Definition at line 487 of file 058-binary_tree10.cpp.

Here is the call graph for this function:

◆ remove_node() [1/6]

template<typename ElementType >
static bool binary_node< ElementType >::remove_node ( node_ptr_t root_ptr,
ElementType  value 
)
inlinestatic

Definition at line 392 of file 053-binary_tree05.cpp.

Here is the call graph for this function:

◆ remove_node() [2/6]

template<typename ElementType >
static bool binary_node< ElementType >::remove_node ( node_ptr_t root_ptr,
ElementType  value 
)
inlinestatic

Definition at line 407 of file 054-binary_tree06.cpp.

Here is the call graph for this function:

◆ remove_node() [3/6]

template<typename ElementType >
static bool binary_node< ElementType >::remove_node ( node_ptr_t root_ptr,
ElementType  value 
)
inlinestatic

Definition at line 433 of file 055-binary_tree07.cpp.

Here is the call graph for this function:

◆ remove_node() [4/6]

template<typename ElementType >
static bool binary_node< ElementType >::remove_node ( node_ptr_t root_ptr,
ElementType  value 
)
inlinestatic

Definition at line 434 of file 056-binary_tree08.cpp.

Here is the call graph for this function:

◆ remove_node() [5/6]

template<typename ElementType >
static bool binary_node< ElementType >::remove_node ( node_ptr_t root_ptr,
ElementType  value 
)
inlinestatic

Definition at line 493 of file 057-binary_tree09.cpp.

Here is the call graph for this function:

◆ remove_node() [6/6]

template<typename ElementType >
static bool binary_node< ElementType >::remove_node ( node_ptr_t root_ptr,
ElementType  value 
)
inlinestatic

Definition at line 497 of file 058-binary_tree10.cpp.

Here is the call graph for this function:

◆ update_height() [1/8]

template<typename ElementType >
void binary_node< ElementType >::update_height ( )
inline

Definition at line 70 of file 051-binary_tree03.cpp.

Here is the caller graph for this function:

◆ update_height() [2/8]

template<typename ElementType >
void binary_node< ElementType >::update_height ( )
inline

Definition at line 72 of file 052-binary_tree04.cpp.

◆ update_height() [3/8]

template<typename ElementType >
void binary_node< ElementType >::update_height ( )
inline

Definition at line 72 of file 053-binary_tree05.cpp.

◆ update_height() [4/8]

template<typename ElementType >
void binary_node< ElementType >::update_height ( )
inline

Definition at line 72 of file 054-binary_tree06.cpp.

◆ update_height() [5/8]

template<typename ElementType >
void binary_node< ElementType >::update_height ( )
inline

Definition at line 72 of file 055-binary_tree07.cpp.

◆ update_height() [6/8]

template<typename ElementType >
void binary_node< ElementType >::update_height ( )
inline

Definition at line 72 of file 056-binary_tree08.cpp.

◆ update_height() [7/8]

template<typename ElementType >
void binary_node< ElementType >::update_height ( )
inline

Definition at line 131 of file 057-binary_tree09.cpp.

◆ update_height() [8/8]

template<typename ElementType >
void binary_node< ElementType >::update_height ( )
inline

Definition at line 131 of file 058-binary_tree10.cpp.

◆ visit_nodes() [1/10]

template<typename ElementType >
void binary_node< ElementType >::visit_nodes ( std::stringstream &  os,
visit_mode  order = visit_mode::in_order 
)
inline

Definition at line 63 of file 049-binary_tree01.cpp.

◆ visit_nodes() [2/10]

template<typename ElementType >
void binary_node< ElementType >::visit_nodes ( tpf::sstream os,
visit_mode  order = visit_mode::in_order 
)
inline

Definition at line 159 of file 050-binary_tree02.cpp.

◆ visit_nodes() [3/10]

template<typename ElementType >
void binary_node< ElementType >::visit_nodes ( tpf::sstream os,
visit_mode  order = visit_mode::in_order 
)
inline

Definition at line 264 of file 051-binary_tree03.cpp.

◆ visit_nodes() [4/10]

template<typename ElementType >
void binary_node< ElementType >::visit_nodes ( tpf::sstream os,
visit_mode  order = visit_mode::in_order 
)
inline

Definition at line 259 of file 052-binary_tree04.cpp.

◆ visit_nodes() [5/10]

template<typename ElementType >
void binary_node< ElementType >::visit_nodes ( tpf::sstream os,
visit_mode  order = visit_mode::in_order 
)
inline

Definition at line 293 of file 053-binary_tree05.cpp.

◆ visit_nodes() [6/10]

template<typename ElementType >
void binary_node< ElementType >::visit_nodes ( tpf::sstream os,
visit_mode  order = visit_mode::in_order 
)
inline

Definition at line 292 of file 054-binary_tree06.cpp.

◆ visit_nodes() [7/10]

template<typename ElementType >
void binary_node< ElementType >::visit_nodes ( tpf::sstream os,
visit_mode  order = visit_mode::in_order 
)
inline

Definition at line 318 of file 055-binary_tree07.cpp.

◆ visit_nodes() [8/10]

template<typename ElementType >
void binary_node< ElementType >::visit_nodes ( tpf::sstream os,
visit_mode  order = visit_mode::in_order 
)
inline

Definition at line 319 of file 056-binary_tree08.cpp.

◆ visit_nodes() [9/10]

template<typename ElementType >
void binary_node< ElementType >::visit_nodes ( tpf::sstream os,
visit_mode  order = visit_mode::in_order 
)
inline

Definition at line 378 of file 057-binary_tree09.cpp.

◆ visit_nodes() [10/10]

template<typename ElementType >
void binary_node< ElementType >::visit_nodes ( tpf::sstream os,
visit_mode  order = visit_mode::in_order 
)
inline

Definition at line 378 of file 058-binary_tree10.cpp.


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