Generic algorithms for internal use


Functions

template<class _Walker , class _Visitor >
_Visitor::return_value _recursive_safe_walk_if (_Walker __w, _Visitor __f)
template<class _Walker , class _Visitor >
_Visitor::return_value _recursive_preorder_walk (_Walker __w, _Visitor __f)
template<class _Walker , class _Visitor >
_Visitor::return_value _recursive_postorder_walk (_Walker __w, _Visitor __f)
template<class _Walker , class _Visitor >
_Visitor::return_value _recursive_walk (_Walker __w, _Visitor __f)
template<class _Walker , class _Visitor >
_Visitor::return_value _recursive_preorder_walk_if (_Walker __w, _Visitor __f)
template<class _Walker , class _Visitor , class _Predicate >
_Visitor::return_value _recursive_preorder_walk_if (_Walker __w, _Visitor __f, _Predicate __p)
template<class _Walker , class _Visitor , class _Predicate >
_Visitor::return_value _recursive_postorder_walk_if (_Walker __w, _Visitor __f, _Predicate __p)
template<class _Walker , class _Visitor >
_Visitor::return_value _recursive_walk_if (_Walker __w, _Visitor __f)
template<class _Walker , class _Visitor >
_Visitor::return_value _recursive_cached_walk (_Walker __w, _Visitor __f)
template<class _Walker , class _Visitor >
_Visitor::return_value _recursive_multi_walk (_Walker __w, _Visitor __f)
template<class _Walker , class _Visitor , class _Predicate1 , class _Predicate2 >
_Visitor::return_value _recursive_walk_if (_Walker __w, _Visitor __f, _Predicate1 __p1, _Predicate2 __p2)
template<class _Walker , class _Visitor , class _Predicate >
_Visitor::return_value _recursive_cached_walk (_Walker __w, _Visitor __f, _Predicate __p)
template<class _Walker , class _Visitor , class _Predicate >
_Visitor::return_value _recursive_multi_walk (_Walker __w, _Visitor __f, _Predicate __p)
template<class _Walker , class _Visitor >
_Visitor::return_value _recursive_preorder_walk_up (_Walker __w, _Visitor __f)
template<class _Walker , class _Visitor >
_Visitor::return_value _recursive_preorder_walk_up_if (_Walker __w, _Visitor __f)
template<class _Walker , class _Visitor , class _Predicate >
_Visitor::return_value _recursive_preorder_walk_up_if (_Walker __w, _Visitor __f, _Predicate __p)
template<class _Walker , class _Visitor >
_Visitor::return_value _recursive_postorder_walk_up (_Walker __w, _Visitor __f)
template<class _Walker , class _Visitor , class _Predicate >
_Visitor::return_value _recursive_postorder_walk_up_if (_Walker __w, _Visitor __f, _Predicate __p)
template<class _Walker , class _Visitor >
_Visitor::return_value _recursive_walk_up (_Walker __w, _Visitor __f)
template<class _Walker , class _Visitor >
_Visitor::return_value _recursive_walk_up_if (_Walker __w, _Visitor __f)
template<class _Walker , class _Visitor , class _Predicate1 , class _Predicate2 >
_Visitor::return_value _recursive_walk_up_if (_Walker __w, _Visitor __f, _Predicate1 __p1, _Predicate2 __p2)
template<class _Walker , class _Visitor >
_Visitor::return_value _recursive_cached_walk_up (_Walker __w, _Visitor __f)
template<class _Walker , class _Visitor >
_Visitor::return_value _recursive_multi_walk_up (_Walker __w, _Visitor __f)
template<class _Walker , class _Visitor , class _Predicate >
_Visitor::return_value _recursive_cached_walk_up (_Walker __w, _Visitor __f, _Predicate __p)
template<class _Walker , class _Visitor , class _Predicate >
_Visitor::return_value _recursive_multi_walk_up (_Walker __w, _Visitor __f, _Predicate __p)
template<class _BidirIter , class _Tp >
_BidirIter rfind (_BidirIter __first, _BidirIter __last, const _Tp &__val, std::bidirectional_iterator_tag)
template<class _BidirIter , class _Predicate >
_BidirIter rfind_if (_BidirIter __first, _BidirIter __last, _Predicate __pred, std::bidirectional_iterator_tag)
template<class _RandomAccessIter , class _Tp >
_RandomAccessIter rfind (_RandomAccessIter __first, _RandomAccessIter __last, const _Tp &__val, std::random_access_iterator_tag)
template<class _RandomAccessIter , class _Predicate >
_RandomAccessIter rfind_if (_RandomAccessIter __first, _RandomAccessIter __last, _Predicate __pred, std::random_access_iterator_tag)

Detailed Description

The generic functions in this section are used by other generic algorithms and are not intended for external use.

Function Documentation

template<class _Walker , class _Visitor , class _Predicate >
_Visitor::return_value _recursive_cached_walk ( _Walker  __w,
_Visitor  __f,
_Predicate  __p 
) [inline]

perform a recursive pre+post order walk starting at __w. At every node various methods of the visitor __f are called:

  • vinit is called before walking for every virtual node
  • vcollect is called after a child of a virtual node has finished
  • vvalue is called to compute the return value of a virtual node
  • preorder is called before the children are visited. If then predicate p returns true, the children are visited. If it returns false, the children are ignored
  • collect is called everytime a child has finished
  • postorder is called after the children have been visited.
  • value is called to compute the return value for this node this function does not check for hitting the virtual ground node.

Definition at line 1342 of file vgtl_algo.h.

template<class _Walker , class _Visitor >
_Visitor::return_value _recursive_cached_walk ( _Walker  __w,
_Visitor  __f 
) [inline]

perform a recursive pre+post order walk starting at __w. At every node various methods of the visitor __f are called:

  • vinit is called before walking for every virtual node
  • vcollect is called after a child of a virtual node has finished
  • vvalue is called to compute the return value of a virtual node
  • preorder is called before the children are visited. If it returns true, the children are visited. If it returns false, the children are ignored
  • collect is called everytime a child has finished
  • postorder is called after the children have been visited.
  • value is called to compute the return value for this node this function does not check for hitting the virtual ground node.

Definition at line 1091 of file vgtl_algo.h.

template<class _Walker , class _Visitor , class _Predicate >
_Visitor::return_value _recursive_cached_walk_up ( _Walker  __w,
_Visitor  __f,
_Predicate  __p 
) [inline]

perform a recursive pre+post order walk towards the root starting at __w. At every node various methods of the visitor __f are called:

  • vinit is called before walking for every virtual node
  • vcollect is called after a child of a virtual node has finished
  • vvalue is called to compute the return value of a virtual node
  • preorder is called before the children are visited. If then predicate __p returns true, the children are visited. If it returns false, the children are ignored
  • collect is called everytime a child has finished
  • postorder is called after the children have been visited.
  • value is called to compute the return value for this node this function does not check for hitting the virtual sky node.

Definition at line 2269 of file vgtl_algo.h.

template<class _Walker , class _Visitor >
_Visitor::return_value _recursive_cached_walk_up ( _Walker  __w,
_Visitor  __f 
) [inline]

perform a recursive pre+post order walk towards the root starting at __w. At every node various methods of the visitor __f are called:

  • vinit is called before walking for every virtual node
  • vcollect is called after a child of a virtual node has finished
  • vvalue is called to compute the return value of a virtual node
  • preorder is called before the children are visited. If it returns true, the children are visited. If it returns false, the children are ignored
  • collect is called everytime a child has finished
  • postorder is called after the children have been visited.
  • value is called to compute the return value for this node this function does not check for hitting the virtual sky node.

Definition at line 2110 of file vgtl_algo.h.

template<class _Walker , class _Visitor , class _Predicate >
_Visitor::return_value _recursive_multi_walk ( _Walker  __w,
_Visitor  __f,
_Predicate  __p 
) [inline]

perform a recursive pre+post order walk starting at __w. At every node various methods of the visitor __f are called:

  • vinit is called before walking for every virtual node.
  • vcollect is called after a child of a virtual node has finished.
  • vvalue is called to compute the return value of a virtual node.
  • preorder is called before the children are visited.
  • collect is called everytime a child has finished.
  • postorder is called after the children have been visited. If the predicate __p returns true, the walk is continued by switching back to preorder mode for this node. If it returns false, the walk is over for this node.
  • value is called to compute the return value for this node. this function does not check for hitting the virtual ground node.

Definition at line 1424 of file vgtl_algo.h.

template<class _Walker , class _Visitor >
_Visitor::return_value _recursive_multi_walk ( _Walker  __w,
_Visitor  __f 
) [inline]

perform a recursive pre+post order walk starting at __w. At every node various methods of the visitor __f are called:

  • vinit is called before walking for every virtual node.
  • vcollect is called after a child of a virtual node has finished.
  • vvalue is called to compute the return value of a virtual node.
  • preorder is called before the children are visited.
  • collect is called everytime a child has finished.
  • postorder is called after the children have been visited. If it returns true, the walk is continued by switching back to preorder mode for this node. If it returns false, the walk is over for this node.
  • value is called to compute the return value for this node. this function does not check for hitting the virtual ground node.

Definition at line 1170 of file vgtl_algo.h.

template<class _Walker , class _Visitor , class _Predicate >
_Visitor::return_value _recursive_multi_walk_up ( _Walker  __w,
_Visitor  __f,
_Predicate  __p 
) [inline]

perform a recursive pre+post order walk towards the root starting at __w. At every node various methods of the visitor __f are called:

  • vinit is called before walking for every virtual node.
  • vcollect is called after a child of a virtual node has finished.
  • vvalue is called to compute the return value of a virtual node.
  • preorder is called before the children are visited.
  • collect is called everytime a child has finished.
  • postorder is called after the children have been visited. If the predicate __p returns true, the walk is continued by switching back to preorder mode for this node. If it returns false, the walk is over for this node.
  • value is called to compute the return value for this node. this function does not check for hitting the virtual sky node.

Definition at line 2352 of file vgtl_algo.h.

template<class _Walker , class _Visitor >
_Visitor::return_value _recursive_multi_walk_up ( _Walker  __w,
_Visitor  __f 
) [inline]

perform a recursive pre+post order walk towards the root starting at __w. At every node various methods of the visitor __f are called:

  • vinit is called before walking for every virtual node.
  • vcollect is called after a child of a virtual node has finished.
  • vvalue is called to compute the return value of a virtual node.
  • preorder is called before the children are visited.
  • collect is called everytime a child has finished.
  • postorder is called after the children have been visited. If it returns true, the walk is continued by switching back to preorder mode for this node. If it returns false, the walk is over for this node.
  • value is called to compute the return value for this node. this function does not check for hitting the virtual sky node.

Definition at line 2190 of file vgtl_algo.h.

template<class _Walker , class _Visitor >
_Visitor::return_value _recursive_postorder_walk ( _Walker  __w,
_Visitor  __f 
) [inline]

perform a recursive postorder walk starting at __w. At every node various methods of the visitor __f are called:

  • vinit is called before walking for every virtual node
  • vcollect is called after a child of a virtual node has finished
  • vvalue is called to compute the return value of a virtual node
  • init is called before the children are visited
  • collect is called everytime a child has finished
  • postorder is called after all children have finished
  • value is called to compute the return value for this node this function does not check for hitting the virtual ground node.

Definition at line 636 of file vgtl_algo.h.

template<class _Walker , class _Visitor , class _Predicate >
_Visitor::return_value _recursive_postorder_walk_if ( _Walker  __w,
_Visitor  __f,
_Predicate  __p 
) [inline]

perform a recursive postorder walk starting at __w. At every node various methods of the visitor __f are called:

  • vinit is called before walking for every virtual node
  • vcollect is called after a child of a virtual node has finished
  • vvalue is called to compute the return value of a virtual node
  • init is called before the children are visited. Then the predicate is called. If this predicate returns true, the children are visited. Otherwise, the node is treated as if it was a terminal node.
  • postorder is called after all children have been visited.
  • collect is called everytime a child has finished.
  • value is called to compute the return value for this node. this function does not check for hitting the virtual ground node.

Definition at line 927 of file vgtl_algo.h.

template<class _Walker , class _Visitor >
_Visitor::return_value _recursive_postorder_walk_up ( _Walker  __w,
_Visitor  __f 
) [inline]

perform a recursive postorder walk towards the root starting at __w. At every node various methods of the visitor __f are called:

  • vinit is called before walking for every virtual node
  • vcollect is called after a child of a virtual node has finished
  • vvalue is called to compute the return value of a virtual node
  • init is called before the children are visited
  • collect is called everytime a child has finished
  • postorder is called after all children have finished
  • value is called to compute the return value for this node this function does not check for hitting the virtual sky node.

Definition at line 1709 of file vgtl_algo.h.

template<class _Walker , class _Visitor , class _Predicate >
_Visitor::return_value _recursive_postorder_walk_up_if ( _Walker  __w,
_Visitor  __f,
_Predicate  __p 
) [inline]

perform a recursive postorder walk towards the root starting at __w. At every node various methods of the visitor __f are called:

  • vinit is called before walking for every virtual node
  • vcollect is called after a child of a virtual node has finished
  • vvalue is called to compute the return value of a virtual node
  • init is called before the children are visited. Then the predicate is called. If this predicate returns true, the children are visited. Otherwise, the node is treated as if it was a terminal node.
  • postorder is called after all children have been visited.
  • collect is called everytime a child has finished.
  • value is called to compute the return value for this node.

Definition at line 1785 of file vgtl_algo.h.

template<class _Walker , class _Visitor >
_Visitor::return_value _recursive_preorder_walk ( _Walker  __w,
_Visitor  __f 
) [inline]

perform a recursive preorder walk starting at __w. At every node various methods of the visitor __f are called:

  • vinit is called before walking for every virtual node
  • vcollect is called after a child of a virtual node has finished
  • vvalue is called to compute the return value of a virtual node
  • preorder is called before the children are visited
  • collect is called everytime a child has finished
  • value is called to compute the return value for this node this function does not check for hitting the virtual ground node.

Definition at line 569 of file vgtl_algo.h.

template<class _Walker , class _Visitor , class _Predicate >
_Visitor::return_value _recursive_preorder_walk_if ( _Walker  __w,
_Visitor  __f,
_Predicate  __p 
) [inline]

perform a recursive preorder walk starting at __w. At every node various methods of the visitor __f are called:

  • vinit is called before walking for every virtual node
  • vcollect is called after a child of a virtual node has finished
  • vvalue is called to compute the return value of a virtual node
  • preorder is called before the children are visited. Then the predicate is called. If this predicate returns true, the children are visited. Otherwise, the node is treated as if it was a terminal node.
  • collect is called everytime a child has finished
  • value is called to compute the return value for this node this function does not check for hitting the virtual ground node.

Definition at line 848 of file vgtl_algo.h.

template<class _Walker , class _Visitor >
_Visitor::return_value _recursive_preorder_walk_if ( _Walker  __w,
_Visitor  __f 
) [inline]

perform a recursive preorder walk starting at __w. At every node various methods of the visitor __f are called:

  • vinit is called before walking for every virtual node
  • vcollect is called after a child of a virtual node has finished
  • vvalue is called to compute the return value of a virtual node
  • preorder is called before the children are visited. If this function returns true, the children are visited. Otherwise, the node is treated as if it was a terminal node.
  • collect is called everytime a child has finished
  • value is called to compute the return value for this node this function does not check for hitting the virtual ground node.

Definition at line 773 of file vgtl_algo.h.

template<class _Walker , class _Visitor >
_Visitor::return_value _recursive_preorder_walk_up ( _Walker  __w,
_Visitor  __f 
) [inline]

perform a recursive preorder walk towards the root starting at __w. At every node various methods of the visitor __f are called:

  • vinit is called before walking for every virtual node
  • vcollect is called after a child of a virtual node has finished
  • vvalue is called to compute the return value of a virtual node
  • preorder is called before the children are visited
  • collect is called everytime a child has finished
  • value is called to compute the return value for this node this function does not check for hitting the virtual sky node.

Definition at line 1494 of file vgtl_algo.h.

template<class _Walker , class _Visitor , class _Predicate >
_Visitor::return_value _recursive_preorder_walk_up_if ( _Walker  __w,
_Visitor  __f,
_Predicate  __p 
) [inline]

perform a recursive preorder walk towards the root starting at __w. At every node various methods of the visitor __f are called:

  • vinit is called before walking for every virtual node
  • vcollect is called after a child of a virtual node has finished
  • vvalue is called to compute the return value of a virtual node
  • preorder is called before the children are visited. Then the predicate is called. If this predicate returns true, the children are visited. Otherwise, the node is treated as if it was a terminal node.
  • collect is called everytime a child has finished
  • value is called to compute the return value for this node this function does not check for hitting the virtual sky node.

Definition at line 1639 of file vgtl_algo.h.

template<class _Walker , class _Visitor >
_Visitor::return_value _recursive_preorder_walk_up_if ( _Walker  __w,
_Visitor  __f 
) [inline]

perform a recursive preorder walk towards the root starting at __w. At every node various methods of the visitor __f are called:

  • vinit is called before walking for every virtual node
  • vcollect is called after a child of a virtual node has finished
  • vvalue is called to compute the return value of a virtual node
  • preorder is called before the children are visited. If this function returns true, the children are visited. Otherwise, the node is treated as if it was a terminal node.
  • collect is called everytime a child has finished
  • value is called to compute the return value for this node this function does not check for hitting the virtual sky node.

Definition at line 1564 of file vgtl_algo.h.

template<class _Walker , class _Visitor >
_Visitor::return_value _recursive_safe_walk_if ( _Walker  __w,
_Visitor  __f 
) [inline]

perform a recursive pre+post order walk starting at __w. At every node various methods of the visitor __f are called:

  • vinit is called before walking for every virtual node
  • vcollect is called after a child of a virtual node has finished
  • vvalue is called to compute the return value of a virtual node
  • preorder is called before the children are visited. If it returns true, the children are visited. If it returns false, the children are ignored
  • collect is called everytime a child has finished
  • postorder is called after the children have been visited. If it returns true, the walk is continued by switching back to preorder mode for this node. If it returns false, the walk is over for this node.
  • value is called to compute the return value for this node this function does not check for hitting the virtual ground node.

Definition at line 114 of file vgtl_addalgo.h.

template<class _Walker , class _Visitor >
_Visitor::return_value _recursive_walk ( _Walker  __w,
_Visitor  __f 
) [inline]

perform a recursive pre+post order walk starting at __w. At every node various methods of the visitor __f are called:

  • vinit is called before walking for every virtual node
  • vcollect is called after a child of a virtual node has finished
  • vvalue is called to compute the return value of a virtual node
  • preorder is called before the children are visited
  • collect is called everytime a child has finished
  • postorder is called after all children have been visited
  • value is called to compute the return value for this node this function does not check for hitting the virtual ground node.

Definition at line 703 of file vgtl_algo.h.

template<class _Walker , class _Visitor , class _Predicate1 , class _Predicate2 >
_Visitor::return_value _recursive_walk_if ( _Walker  __w,
_Visitor  __f,
_Predicate1  __p1,
_Predicate2  __p2 
) [inline]

perform a recursive pre+post order walk starting at __w. At every node various methods of the visitor __f are called:

  • vinit is called before walking for every virtual node
  • vcollect is called after a child of a virtual node has finished
  • vvalue is called to compute the return value of a virtual node
  • preorder is called before the children are visited. If then predicate p1 returns true, the children are visited. If it returns false, the children are ignored
  • collect is called everytime a child has finished
  • postorder is called after the children have been visited. If then predicate p2 returns true, the walk is continued by switching back to preorder mode for this node. If it returns false, the walk is over for this node.
  • value is called to compute the return value for this node this function does not check for hitting the virtual ground node.

Definition at line 1259 of file vgtl_algo.h.

template<class _Walker , class _Visitor >
_Visitor::return_value _recursive_walk_if ( _Walker  __w,
_Visitor  __f 
) [inline]

perform a recursive pre+post order walk starting at __w. At every node various methods of the visitor __f are called:

  • vinit is called before walking for every virtual node
  • vcollect is called after a child of a virtual node has finished
  • vvalue is called to compute the return value of a virtual node
  • preorder is called before the children are visited. If it returns true, the children are visited. If it returns false, the children are ignored
  • collect is called everytime a child has finished
  • postorder is called after the children have been visited. If it returns true, the walk is continued by switching back to preorder mode for this node. If it returns false, the walk is over for this node.
  • value is called to compute the return value for this node this function does not check for hitting the virtual ground node.

Definition at line 1013 of file vgtl_algo.h.

template<class _Walker , class _Visitor >
_Visitor::return_value _recursive_walk_up ( _Walker  __w,
_Visitor  __f 
) [inline]

perform a recursive pre+post order walk towards the root starting at __w. At every node various methods of the visitor __f are called:

  • vinit is called before walking for every virtual node
  • vcollect is called after a child of a virtual node has finished
  • vvalue is called to compute the return value of a virtual node
  • preorder is called before the children are visited
  • collect is called everytime a child has finished
  • postorder is called after all children have been visited
  • value is called to compute the return value for this node this function does not check for hitting the virtual sky node.

Definition at line 1855 of file vgtl_algo.h.

template<class _Walker , class _Visitor , class _Predicate1 , class _Predicate2 >
_Visitor::return_value _recursive_walk_up_if ( _Walker  __w,
_Visitor  __f,
_Predicate1  __p1,
_Predicate2  __p2 
) [inline]

perform a recursive pre+post order walk towards the root starting at __w. At every node various methods of the visitor __f are called:

  • vinit is called before walking for every virtual node
  • vcollect is called after a child of a virtual node has finished
  • vvalue is called to compute the return value of a virtual node
  • preorder is called before the children are visited. If then predicate p1 returns true, the children are visited. If it returns false, the children are ignored
  • collect is called everytime a child has finished
  • postorder is called after the children have been visited. If then predicate p2 returns true, the walk is continued by switching back to preorder mode for this node. If it returns false, the walk is over for this node.
  • value is called to compute the return value for this node this function does not check for hitting the virtual sky node.

Definition at line 2028 of file vgtl_algo.h.

template<class _Walker , class _Visitor >
_Visitor::return_value _recursive_walk_up_if ( _Walker  __w,
_Visitor  __f 
) [inline]

perform a recursive pre+post order walk towards the root starting at __w. At every node various methods of the visitor __f are called:

  • vinit is called before walking for every virtual node.
  • vcollect is called after a child of a virtual node has finished.
  • vvalue is called to compute the return value of a virtual node.
  • preorder is called before the children are visited. If it returns true, the children are visited. If it returns false, the children are ignored.
  • collect is called everytime a child has finished.
  • postorder is called after the children have been visited. If it returns true, the walk is continued by switching back to preorder mode for this node. If it returns false, the walk is over for this node.
  • value is called to compute the return value for this node. this function does not check for hitting the virtual sky node.

Definition at line 1937 of file vgtl_algo.h.

template<class _RandomAccessIter , class _Tp >
_RandomAccessIter rfind ( _RandomAccessIter  __first,
_RandomAccessIter  __last,
const _Tp &  __val,
std::random_access_iterator_tag   
) [inline]

This is an overload used by rfind() (reverse find) for the Random Access Iterator case. rfind() works like the STL find() algorithm, just backwards.

Definition at line 87 of file vgtl_helpers.h.

template<class _BidirIter , class _Tp >
_BidirIter rfind ( _BidirIter  __first,
_BidirIter  __last,
const _Tp &  __val,
std::bidirectional_iterator_tag   
) [inline]

This is an overload used by rfind() (reverse find) for the Bidirectional Iterator case. rfind() works like the STL find() algorithm, just backwards.

Definition at line 45 of file vgtl_helpers.h.

template<class _RandomAccessIter , class _Predicate >
_RandomAccessIter rfind_if ( _RandomAccessIter  __first,
_RandomAccessIter  __last,
_Predicate  __pred,
std::random_access_iterator_tag   
) [inline]

This is an overload used by rfind_if() (reverse find if) for the Random Access Iterator case. rfind_if() works like the STL find_if() algorithm, just backwards.

Definition at line 137 of file vgtl_helpers.h.

template<class _BidirIter , class _Predicate >
_BidirIter rfind_if ( _BidirIter  __first,
_BidirIter  __last,
_Predicate  __pred,
std::bidirectional_iterator_tag   
) [inline]

This is an overload used by rfind_if() (reverse find if) for the Bidirectional Iterator case. rfind_if() works like the STL find_if() algorithm, just backwards.

Definition at line 65 of file vgtl_helpers.h.


Generated on Tue Feb 9 14:42:14 2010 for Vienna Graph Template Library by  doxygen 1.5.8