GCC Middle and Back End API Reference
rooted_splay_tree< Accessors > Class Template Reference

#include <splay-tree-utils.h>

Inheritance diagram for rooted_splay_tree< Accessors >:
Collaboration diagram for rooted_splay_tree< Accessors >:

Public Member Functions

 rooted_splay_tree ()
 
 rooted_splay_tree (node_type root)
 
node_type root () const
 
 operator bool () const
 
node_type operator-> ()
 
template<typename Comparator >
bool insert (node_type new_node, Comparator compare)
 
void insert_relative (int comparison, node_type new_node)
 
void insert_max_node (node_type new_node)
 
void splice_next_tree (rooted_splay_tree next_tree)
 
void replace_max_node_at_root (node_type new_node)
 
void remove_root ()
 
bool remove_root_and_splay_next ()
 
rooted_splay_tree split_before_root ()
 
rooted_splay_tree split_after_root ()
 
bool splay_prev_node ()
 
bool splay_next_node ()
 
void splay_min_node ()
 
void splay_max_node ()
 
node_type min_node ()
 
node_type max_node ()
 
template<typename Comparator >
auto lookup (Comparator compare) -> decltype(compare(m_root))
 
template<typename LeftPredicate , typename RightPredicate >
int lookup (LeftPredicate want_something_smaller, RightPredicate want_something_bigger)
 
template<typename LeftPredicate , typename RightPredicate >
int lookup_le (LeftPredicate want_something_smaller, RightPredicate want_something_bigger)
 
template<typename Printer >
void print (pretty_printer *pp, Printer printer) const
 

Static Public Member Functions

template<typename Printer >
static void print (pretty_printer *pp, node_type node, Printer printer)
 
template<typename Printer >
static void print (pretty_printer *pp, node_type node, Printer printer, char, vec< char > &)
 
static void insert_child (node_type node, unsigned int index, node_type child)
 

Protected Member Functions

template<unsigned int N>
bool splay_neighbor ()
 

Static Protected Member Functions

static node_type get_child (node_type, unsigned int)
 
static void set_child (node_type, unsigned int, node_type)
 
static node_type promote_child (node_type, unsigned int)
 
static void promote_child (node_type, unsigned int, node_type)
 
template<unsigned int N>
static node_type splay_limit (node_type)
 
static node_type remove_node_internal (node_type)
 

Protected Attributes

node_type m_root
 

Private Types

using parent = base_splay_tree<Accessors>
 

Member Typedef Documentation

◆ parent

template<typename Accessors >
using rooted_splay_tree< Accessors >::parent = base_splay_tree<Accessors>
private

Constructor & Destructor Documentation

◆ rooted_splay_tree() [1/2]

template<typename Accessors >
rooted_splay_tree< Accessors >::rooted_splay_tree ( )
inline

◆ rooted_splay_tree() [2/2]

template<typename Accessors >
rooted_splay_tree< Accessors >::rooted_splay_tree ( node_type root)
inline

Member Function Documentation

◆ get_child()

template<typename Accessors >
static node_type base_splay_tree< Accessors >::get_child ( node_type ,
unsigned int  )
staticprotected

◆ insert()

template<typename Accessors >
template<typename Comparator >
bool rooted_splay_tree< Accessors >::insert ( node_type new_node,
Comparator compare )

◆ insert_child()

template<typename Accessors >
static void base_splay_tree< Accessors >::insert_child ( node_type node,
unsigned int index,
node_type child )
staticinherited

◆ insert_max_node()

template<typename Accessors >
void rooted_splay_tree< Accessors >::insert_max_node ( node_type new_node)

◆ insert_relative()

template<typename Accessors >
void rooted_splay_tree< Accessors >::insert_relative ( int comparison,
node_type new_node )

◆ lookup() [1/2]

template<typename Accessors >
template<typename Comparator >
auto rooted_splay_tree< Accessors >::lookup ( Comparator compare) -> decltype(compare(m_root))

◆ lookup() [2/2]

template<typename Accessors >
template<typename LeftPredicate , typename RightPredicate >
int rooted_splay_tree< Accessors >::lookup ( LeftPredicate want_something_smaller,
RightPredicate want_something_bigger )

◆ lookup_le()

template<typename Accessors >
template<typename LeftPredicate , typename RightPredicate >
int rooted_splay_tree< Accessors >::lookup_le ( LeftPredicate want_something_smaller,
RightPredicate want_something_bigger )

◆ max_node()

template<typename Accessors >
node_type rooted_splay_tree< Accessors >::max_node ( )

◆ min_node()

template<typename Accessors >
node_type rooted_splay_tree< Accessors >::min_node ( )

◆ operator bool()

template<typename Accessors >
rooted_splay_tree< Accessors >::operator bool ( ) const
inlineexplicit

◆ operator->()

template<typename Accessors >
node_type rooted_splay_tree< Accessors >::operator-> ( )
inline

◆ print() [1/3]

template<typename Accessors >
template<typename Printer >
static void base_splay_tree< Accessors >::print ( pretty_printer * pp,
node_type node,
Printer printer )
static

◆ print() [2/3]

template<typename Accessors >
template<typename Printer >
static void base_splay_tree< Accessors >::print ( pretty_printer * pp,
node_type node,
Printer printer,
char ,
vec< char > &  )
static

◆ print() [3/3]

template<typename Accessors >
template<typename Printer >
void rooted_splay_tree< Accessors >::print ( pretty_printer * pp,
Printer printer ) const

◆ promote_child() [1/2]

template<typename Accessors >
static node_type base_splay_tree< Accessors >::promote_child ( node_type ,
unsigned int  )
staticprotected

◆ promote_child() [2/2]

template<typename Accessors >
static void base_splay_tree< Accessors >::promote_child ( node_type ,
unsigned int ,
node_type  )
staticprotected

◆ remove_node_internal()

template<typename Accessors >
static node_type base_splay_tree< Accessors >::remove_node_internal ( node_type )
staticprotectedinherited

◆ remove_root()

template<typename Accessors >
void rooted_splay_tree< Accessors >::remove_root ( )

◆ remove_root_and_splay_next()

template<typename Accessors >
bool rooted_splay_tree< Accessors >::remove_root_and_splay_next ( )

◆ replace_max_node_at_root()

template<typename Accessors >
void rooted_splay_tree< Accessors >::replace_max_node_at_root ( node_type new_node)

◆ root()

template<typename Accessors >
node_type rooted_splay_tree< Accessors >::root ( ) const
inline

◆ set_child()

template<typename Accessors >
static void base_splay_tree< Accessors >::set_child ( node_type ,
unsigned int ,
node_type  )
staticprotected

◆ splay_limit()

template<typename Accessors >
template<unsigned int N>
static node_type base_splay_tree< Accessors >::splay_limit ( node_type )
staticprotectedinherited

◆ splay_max_node()

template<typename Accessors >
void rooted_splay_tree< Accessors >::splay_max_node ( )

◆ splay_min_node()

template<typename Accessors >
void rooted_splay_tree< Accessors >::splay_min_node ( )

◆ splay_neighbor()

template<typename Accessors >
template<unsigned int N>
bool rooted_splay_tree< Accessors >::splay_neighbor ( )
protected

◆ splay_next_node()

template<typename Accessors >
bool rooted_splay_tree< Accessors >::splay_next_node ( )

◆ splay_prev_node()

template<typename Accessors >
bool rooted_splay_tree< Accessors >::splay_prev_node ( )

◆ splice_next_tree()

template<typename Accessors >
void rooted_splay_tree< Accessors >::splice_next_tree ( rooted_splay_tree< Accessors > next_tree)

◆ split_after_root()

template<typename Accessors >
rooted_splay_tree rooted_splay_tree< Accessors >::split_after_root ( )

◆ split_before_root()

template<typename Accessors >
rooted_splay_tree rooted_splay_tree< Accessors >::split_before_root ( )

Field Documentation

◆ m_root


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