Public Types | Public Member Functions | Private Types | Private Attributes

claw::avl< K, Comp > Class Template Reference

Binary search tree AVL implementation. More...

#include <avl.hpp>

Inheritance diagram for claw::avl< K, Comp >:
claw::math::ordered_set< K, Comp >

List of all members.

Public Types

typedef K value_type
typedef K key_type
typedef K referent_type
typedef Comp key_less
typedef const K & const_reference
typedef
impl_type::avl_const_iterator 
const_iterator

Public Member Functions

 avl ()
 AVL constructor.
 avl (const avl< K, Comp > &that)
 AVL copy constructor.
template<typename InputIterator >
 avl (InputIterator first, InputIterator last)
 Constructor from a range.
void insert (const K &key)
 Add a value in a tree.
template<typename InputIterator >
void insert (InputIterator first, InputIterator last)
 Add a range of items in the tree.
void erase (const K &key)
 Delete a value in a tree.
void clear ()
 Clear a tree.
unsigned int size () const
 Get the size of a tree.
bool empty () const
 Tell if a tree is empty or not.
const_iterator begin () const
 Get an iterator on the nodes of the tree.
const_iterator end () const
 Get an iterator after the end of the tree.
const_iterator find (const K &key) const
 Get an iterator on the nodes of the tree from a specified key.
const_iterator find_nearest_greater (const K &key) const
 Get an iterator on the nodes of the tree on the key imediatly after from a specified key.
const_iterator find_nearest_lower (const K &key) const
 Get an iterator on the nodes of the tree on the key imediatly before from a specified key.
const_iterator lower_bound () const
 Get an iterator on the lowest value of the tree.
const_iterator upper_bound () const
 Get an iterator on the gratest value of the tree.
avl< K, Comp > & operator= (const avl< K, Comp > &that)
 Assignment.
bool operator== (const avl< K, Comp > &that) const
 Equality.
bool operator!= (const avl< K, Comp > &that) const
 Disequality.
bool operator< (const avl< K, Comp > &that) const
 Less than operator.
bool operator> (const avl< K, Comp > &that) const
 Greater than operator.
bool operator<= (const avl< K, Comp > &that) const
 Less or equal operator.
bool operator>= (const avl< K, Comp > &that) const
 Greater or equal operator.

Private Types

typedef avl_base< K, Comp > impl_type

Private Attributes

impl_type m_tree
 Implementation.

Detailed Description

template<class K, class Comp = std::less<K>>
class claw::avl< K, Comp >

Binary search tree AVL implementation.

Author:
Julien Jorge

Definition at line 43 of file avl.hpp.


Member Typedef Documentation

template<class K, class Comp = std::less<K>>
typedef impl_type::avl_const_iterator claw::avl< K, Comp >::const_iterator
template<class K, class Comp = std::less<K>>
typedef const K& claw::avl< K, Comp >::const_reference
template<class K, class Comp = std::less<K>>
typedef avl_base<K, Comp> claw::avl< K, Comp >::impl_type [private]

Definition at line 46 of file avl.hpp.

template<class K, class Comp = std::less<K>>
typedef Comp claw::avl< K, Comp >::key_less

Definition at line 52 of file avl.hpp.

template<class K, class Comp = std::less<K>>
typedef K claw::avl< K, Comp >::key_type

Definition at line 50 of file avl.hpp.

template<class K, class Comp = std::less<K>>
typedef K claw::avl< K, Comp >::referent_type
template<class K, class Comp = std::less<K>>
typedef K claw::avl< K, Comp >::value_type

Constructor & Destructor Documentation

template<class K , class Comp >
claw::avl< K, Comp >::avl (  )

AVL constructor.

Postcondition:
empty()

Definition at line 38 of file avl.tpp.

{

} // avl::avl() [constructor]
template<class K, class Comp>
claw::avl< K, Comp >::avl ( const avl< K, Comp > &  that ) [explicit]

AVL copy constructor.

Parameters:
thatAVL instance to copy from.

Definition at line 49 of file avl.tpp.

  : m_tree(that.m_tree)
{

} // avl::avl() [copy constructor]
template<class K , class Comp >
template<typename InputIterator >
claw::avl< K, Comp >::avl ( InputIterator  first,
InputIterator  last 
)

Constructor from a range.

Parameters:
firstIterator on the first element of the range.
lastIterator just past the last element of the range.

Definition at line 63 of file avl.tpp.

References claw::avl< K, Comp >::insert().

{
  m_tree.insert(first, last);
} // avl::avl() [constructor from range]

Member Function Documentation

template<class K , class Comp >
claw::avl< K, Comp >::const_iterator claw::avl< K, Comp >::begin (  ) const
template<class K , class Comp >
void claw::avl< K, Comp >::clear (  )

Clear a tree.

Postcondition:
empty()

Definition at line 113 of file avl.tpp.

References claw::avl< K, Comp >::clear().

Referenced by claw::avl< K, Comp >::clear().

{
  m_tree.clear();
} // avl::clear()
template<class K , class Comp >
bool claw::avl< K, Comp >::empty (  ) const [inline]

Tell if a tree is empty or not.

Returns:
true if the tree is empty, false otherwise.

Definition at line 135 of file avl.tpp.

References claw::avl< K, Comp >::empty().

Referenced by claw::avl< K, Comp >::empty().

{
  return m_tree.empty();
} // avl::empty()
template<class K , class Comp >
claw::avl< K, Comp >::const_iterator claw::avl< K, Comp >::end (  ) const
template<class K, class Comp >
void claw::avl< K, Comp >::erase ( const K &  key )

Delete a value in a tree.

Parameters:
keyNode key.
Postcondition:
not exists(key)

Definition at line 102 of file avl.tpp.

References claw::avl< K, Comp >::erase().

Referenced by claw::avl< K, Comp >::erase().

{
  m_tree.erase(key);
} // avl::erase()
template<class K, class Comp >
claw::avl< K, Comp >::const_iterator claw::avl< K, Comp >::find ( const K &  key ) const

Get an iterator on the nodes of the tree from a specified key.

Parameters:
keyKey to find.

Definition at line 168 of file avl.tpp.

References claw::avl< K, Comp >::find().

Referenced by claw::math::ordered_set< K, Comp >::difference(), claw::avl< K, Comp >::find(), claw::math::ordered_set< K, Comp >::intersection(), claw::arguments::parse(), and claw::arguments::process_boolean().

{
  return m_tree.find(key);
} // avl::find()
template<class K, class Comp >
claw::avl< K, Comp >::const_iterator claw::avl< K, Comp >::find_nearest_greater ( const K &  key ) const

Get an iterator on the nodes of the tree on the key imediatly after from a specified key.

Parameters:
keyKey to find.

Definition at line 181 of file avl.tpp.

References claw::avl< K, Comp >::find_nearest_greater().

Referenced by claw::avl< K, Comp >::find_nearest_greater().

{
  return m_tree.find_nearest_greater(key);
} // avl::find_nearest_greater()
template<class K, class Comp >
claw::avl< K, Comp >::const_iterator claw::avl< K, Comp >::find_nearest_lower ( const K &  key ) const

Get an iterator on the nodes of the tree on the key imediatly before from a specified key.

Parameters:
keyKey to find.

Definition at line 194 of file avl.tpp.

References claw::avl< K, Comp >::find_nearest_lower().

Referenced by claw::avl< K, Comp >::find_nearest_lower().

{
  return m_tree.find_nearest_lower(key);
} // avl::find_nearest_lower()
template<class K , class Comp >
template<typename InputIterator >
void claw::avl< K, Comp >::insert ( InputIterator  first,
InputIterator  last 
)

Add a range of items in the tree.

Parameters:
firstIterator on the first item to add.
lastIterator past the last item to add.
Precondition:
Iterator::value_type is K
Postcondition:
exists( *it ) for all it in [first, last)

Definition at line 90 of file avl.tpp.

References claw::avl< K, Comp >::insert().

{
  m_tree.insert(first, last);
} // avl::insert()
template<class K, class Comp >
void claw::avl< K, Comp >::insert ( const K &  key )

Add a value in a tree.

Parameters:
keyNode key.
Postcondition:
exists(key)

Definition at line 75 of file avl.tpp.

References claw::avl< K, Comp >::insert().

Referenced by claw::avl< K, Comp >::avl(), claw::avl< K, Comp >::insert(), claw::arguments_table::parse(), and claw::automaton< State, Edge, StateComp, EdgeComp >::reachables().

{
  m_tree.insert(key);
} // avl::insert()
template<class K , class Comp >
claw::avl< K, Comp >::const_iterator claw::avl< K, Comp >::lower_bound (  ) const

Get an iterator on the lowest value of the tree.

Definition at line 205 of file avl.tpp.

References claw::avl< K, Comp >::lower_bound().

Referenced by claw::avl< K, Comp >::lower_bound().

{
  return m_tree.lower_bound();
} // avl::lower_bound()
template<class K, class Comp>
bool claw::avl< K, Comp >::operator!= ( const avl< K, Comp > &  that ) const

Disequality.

Parameters:
thatThe instance to compare to.

Definition at line 250 of file avl.tpp.

References claw::avl< K, Comp >::m_tree.

{
  return m_tree != that.m_tree;
} // avl::operator!=()
template<class K, class Comp>
bool claw::avl< K, Comp >::operator< ( const avl< K, Comp > &  that ) const

Less than operator.

Parameters:
thatThe instance to compare to.

Definition at line 261 of file avl.tpp.

References claw::avl< K, Comp >::m_tree.

{
  return m_tree < that.m_tree;
} // avl::operator<()
template<class K, class Comp>
bool claw::avl< K, Comp >::operator<= ( const avl< K, Comp > &  that ) const

Less or equal operator.

Parameters:
thatThe instance to compare to.

Definition at line 283 of file avl.tpp.

References claw::avl< K, Comp >::m_tree.

{
  return m_tree <= that.m_tree;
} // avl::operator<=()
template<class K, class Comp>
claw::avl< K, Comp > & claw::avl< K, Comp >::operator= ( const avl< K, Comp > &  that )

Assignment.

Parameters:
thatThe instance to copy from.

Definition at line 227 of file avl.tpp.

References claw::avl< K, Comp >::m_tree.

{
  m_tree = that.m_tree;
  return *this;
} // avl::operator=()
template<class K, class Comp>
bool claw::avl< K, Comp >::operator== ( const avl< K, Comp > &  that ) const

Equality.

Parameters:
thatThe instance to compare to.

Definition at line 239 of file avl.tpp.

References claw::avl< K, Comp >::m_tree.

{
  return m_tree == that.m_tree;
} // avl::operator==()
template<class K, class Comp>
bool claw::avl< K, Comp >::operator> ( const avl< K, Comp > &  that ) const

Greater than operator.

Parameters:
thatThe instance to compare to.

Definition at line 272 of file avl.tpp.

References claw::avl< K, Comp >::m_tree.

{
  return m_tree > that.m_tree;
} // avl::operator>()
template<class K, class Comp>
bool claw::avl< K, Comp >::operator>= ( const avl< K, Comp > &  that ) const

Greater or equal operator.

Parameters:
thatThe instance to compare to.

Definition at line 294 of file avl.tpp.

References claw::avl< K, Comp >::m_tree.

{
  return m_tree >= that.m_tree;
} // avl::operator>=()
template<class K , class Comp >
unsigned int claw::avl< K, Comp >::size (  ) const [inline]
template<class K , class Comp >
claw::avl< K, Comp >::const_iterator claw::avl< K, Comp >::upper_bound (  ) const

Get an iterator on the gratest value of the tree.

Definition at line 216 of file avl.tpp.

References claw::avl< K, Comp >::upper_bound().

Referenced by claw::avl< K, Comp >::upper_bound().

{
  return m_tree.upper_bound();
} // avl::upper_bound()

Member Data Documentation

template<class K, class Comp = std::less<K>>
impl_type claw::avl< K, Comp >::m_tree [private]

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