From 8c22336bb9544e7227d3847986ecd20e031c9a2f Mon Sep 17 00:00:00 2001 From: cdgill Date: Mon, 16 Nov 1998 23:54:19 +0000 Subject: Added test, less than functor, better comments, etc. to RB_Tree class --- ace/RB_Tree.i | 133 ++++++++++++++++++++++++++++++++++++---------------------- 1 file changed, 83 insertions(+), 50 deletions(-) (limited to 'ace/RB_Tree.i') diff --git a/ace/RB_Tree.i b/ace/RB_Tree.i index ce6c15dfa0a..b423d77d5dd 100644 --- a/ace/RB_Tree.i +++ b/ace/RB_Tree.i @@ -1,152 +1,185 @@ /* -*- C++ -*- */ // $Id$ -///////////////////////////////////////// -// template class RB_Tree_Node // -///////////////////////////////////////// +///////////////////////////////////////////// +// template class ACE_RB_Tree_Node // +///////////////////////////////////////////// + +// Key accessor. template ACE_INLINE KEY & -RB_Tree_Node::key () +ACE_RB_Tree_Node::key () { return k_; } - // key accessor + + +// Item accessor. template ACE_INLINE T & -RB_Tree_Node::item () +ACE_RB_Tree_Node::item () { return t_; } - // item accessor + + +// Set color of the node. template ACE_INLINE void -RB_Tree_Node::color (RB_Tree_Node_Base::RB_Tree_Node_Color c) +ACE_RB_Tree_Node::color (ACE_RB_Tree_Node_Base::RB_Tree_Node_Color c) { color_ = c; } - // set color of the node + + +// Get color of the node. template -ACE_INLINE RB_Tree_Node_Base::RB_Tree_Node_Color -RB_Tree_Node::color () +ACE_INLINE ACE_RB_Tree_Node_Base::RB_Tree_Node_Color +ACE_RB_Tree_Node::color () { return color_; } - // get color of the node -template ACE_INLINE RB_Tree_Node * -RB_Tree_Node::parent () +// Accessor for node's parent pointer. + +template ACE_INLINE ACE_RB_Tree_Node * +ACE_RB_Tree_Node::parent () { return parent_; } - // accessor for node's parent pointer + + +// Mutator for node's parent pointer. template ACE_INLINE void -RB_Tree_Node::parent (RB_Tree_Node * p) +ACE_RB_Tree_Node::parent (ACE_RB_Tree_Node * p) { parent_ = p; } - // mutator for node's parent pointer + + + +// Accessor for node's left child pointer. -template ACE_INLINE RB_Tree_Node * -RB_Tree_Node::left () +template ACE_INLINE ACE_RB_Tree_Node * +ACE_RB_Tree_Node::left () { return left_; } - // accessor for node's left child pointer + + +// Mutator for node's left child pointer. template ACE_INLINE void -RB_Tree_Node::left (RB_Tree_Node * l) +ACE_RB_Tree_Node::left (ACE_RB_Tree_Node * l) { left_ = l; } - // mutator for node's left child pointer -template ACE_INLINE RB_Tree_Node * -RB_Tree_Node::right () + +// Accessor for node's right child pointer. + +template ACE_INLINE ACE_RB_Tree_Node * +ACE_RB_Tree_Node::right () { return right_; } - // accessor for node's right child pointer + + +// Mutator for node's right child pointer. template ACE_INLINE void -RB_Tree_Node::right (RB_Tree_Node * r) +ACE_RB_Tree_Node::right (ACE_RB_Tree_Node * r) { right_ = r; } - // mutator for node's right child pointer -//////////////////////////////////// -// template class RB_Tree // -//////////////////////////////////// + +//////////////////////////////////////// +// template class ACE_RB_Tree // +//////////////////////////////////////// + + +// Destroys all nodes and sets the root pointer null. template ACE_INLINE void -RB_Tree::clear () +ACE_RB_Tree::clear () { delete root_; root_ = 0; } - // destroys all nodes and sets the root pointer null. -///////////////////////////////////////////// -// template class RB_Tree_Iterator // -///////////////////////////////////////////// +///////////////////////////////////////////////// +// template class ACE_RB_Tree_Iterator // +///////////////////////////////////////////////// +// Accessor for key of node under iterator (if any). + template ACE_INLINE KEY * -RB_Tree_Iterator::key () +ACE_RB_Tree_Iterator::key () { return node_ ? (&(node_->key ())) : 0; } - // accessor for key of node under iterator (if any) + + +// Accessor for item of node under iterator (if any). template ACE_INLINE T * -RB_Tree_Iterator::item () +ACE_RB_Tree_Iterator::item () { return node_ ? (&(node_->item ())) : 0; } - // accessor for item of node under iterator (if any) + + +// Move to the first item in the tree. template ACE_INLINE int -RB_Tree_Iterator::first () +ACE_RB_Tree_Iterator::first () { node_ = tree_.RB_tree_minimum (tree_.root_); return node_ ? 1 : 0; } - // move to the first item in the tree + + +// Move to the last item in the tree. template ACE_INLINE int -RB_Tree_Iterator::last () +ACE_RB_Tree_Iterator::last () { node_ = tree_.RB_tree_maximum (tree_.root_); return node_ ? 1 : 0; } - // move to the last item in the tree + + +// Moves to the next item in the tree, +// returns 1 if there is a next item, 0 otherwise. template ACE_INLINE int -RB_Tree_Iterator::next () +ACE_RB_Tree_Iterator::next () { node_ = tree_.RB_tree_successor (node_); return node_ ? 1 : 0; } - // move to the next item in the tree - // returns 1 if there is a next item, 0 otherwise + + +// Moves to the previous item in the tree, +// returns 1 if there is a previous item, 0 otherwise. template ACE_INLINE int -RB_Tree_Iterator::previous () +ACE_RB_Tree_Iterator::previous () { node_ = tree_.RB_tree_predecessor (node_); return node_ ? 1 : 0; } - // move to the previous item in the tree - // returns 1 if there is a previous item, 0 otherwise template ACE_INLINE int -RB_Tree_Iterator::is_done () +ACE_RB_Tree_Iterator::is_done () { return node_ ? 0 : 1; } -- cgit v1.2.1