dag< _Tp, _SequenceCtr, _PtrAlloc, _Alloc > Class Template Reference
[Classes and types for external use]

unlabeled directed acyclic graph (DAG) More...

#include <vgtl_dag.h>

Inheritance diagram for dag< _Tp, _SequenceCtr, _PtrAlloc, _Alloc >:

Inheritance graph
[legend]
Collaboration diagram for dag< _Tp, _SequenceCtr, _PtrAlloc, _Alloc >:

Collaboration graph
[legend]

List of all members.

Public Types

typedef _Base::walker walker
typedef _Base::const_walker const_walker
typedef _Base::children_iterator children_iterator
typedef _Base::parents_iterator parents_iterator
typedef
_Base::children_const_iterator 
children_const_iterator
typedef
_Base::parents_const_iterator 
parents_const_iterator
typedef _Base::erased_part erased_part
typedef _SequenceCtr< void
*, _PtrAlloc > 
container_type
typedef _DG_iterator< _Tp, _Tp
&, _Tp *, container_type,
children_iterator,
children_const_iterator
iterator
typedef _DG_iterator< _Tp,
const _Tp &, const _Tp
*, container_type,
children_iterator,
children_const_iterator
const_iterator
typedef std::reverse_iterator
< const_iterator
const_reverse_iterator
typedef std::reverse_iterator
< iterator
reverse_iterator
typedef std::pair< walker, walkeredge
typedef std::pair< edge, bool > enhanced_edge
typedef _Tp value_type
typedef _Node node_type
typedef value_typepointer
typedef const value_typeconst_pointer
typedef value_typereference
typedef const value_typeconst_reference
typedef size_t size_type
typedef ptrdiff_t difference_type

Public Member Functions

 dag (const allocator_type &__a=allocator_type())
 dag (const _Self &__dag)
 dag (const _Base &__dag)
 dag (const erased_part &__ep)
bool check_acyclicity (const walker &__parent, const walker &__child)
_Selfoperator= (const _RV_DG &__rl)
_Selfoperator= (const erased_part &__ep)
void clear ()
walker between (const walker &__parent, const children_iterator &__cit, const walker &__child, const parents_iterator &__pit, const _Tp &__x)
walker between (const __SequenceCtr1< walker, _Allocator1 > &__parents, const __SequenceCtr2< walker, _Allocator2 > &__children, const _Tp &__x)
walker between (const walker &__parent, const children_iterator &__cit, const __SequenceCtr< walker, _Allocator > &__children, const _Tp &__x)
walker between (const __SequenceCtr< walker, _Allocator > &__parents, const walker &__child, const parents_iterator &__pit, const _Tp &__x)
walker split (const walker &__parent, const children_iterator &__ch_it, const walker &__child, const parents_iterator &__pa_it, const _Tp &__x)
void split (const __SequenceCtr1< walker, _Allocator1 > &__parents, const __SequenceCtr2< walker, _Allocator2 > &__children, const _Tp &__x)
walker split (const walker &__parent, const children_iterator &__ch_it, const __SequenceCtr< walker, _Allocator > &__children, const _Tp &__x)
walker split (const __SequenceCtr< walker, _Allocator > &__parents, const walker &__child, const parents_iterator &__pr_it, const _Tp &__x)
walker between_back (const walker &__parent, const walker &__child, const _Tp &__x)
walker between_back (const walker &__parent, const __SequenceCtr< walker, _Allocator > &__children, const _Tp &__x)
walker between_back (const __SequenceCtr< walker, _Allocator > &__parents, const walker &__child, const _Tp &__x)
walker split_back (const walker &__parent, const walker &__child, const _Tp &__x)
walker split_back (const walker &__parent, const __SequenceCtr< walker, _Allocator > &__children, const _Tp &__x)
walker split_back (const __SequenceCtr< walker, _Allocator > &__parents, const walker &__child, const _Tp &__x)
walker between_front (const walker &__parent, const walker &__child, const _Tp &__x)
walker between_front (const walker &__parent, const __SequenceCtr< walker, _Allocator > &__children, const _Tp &__x)
walker between_front (const __SequenceCtr< walker, _Allocator > &__parents, const walker &__child, const _Tp &__x)
walker split_front (const walker &__parent, const walker &__child, const _Tp &__x)
walker split_front (const walker &__parent, const __SequenceCtr< walker, _Allocator > &__children, const _Tp &__x)
walker split_front (const __SequenceCtr< walker, _Allocator > &__parents, const walker &__child, const _Tp &__x)
void insert_subgraph (_Self &__subgraph, const walker &__parent, const children_iterator &__ch_it, const walker &__child, const parents_iterator &__pa_it)
void insert_subgraph (_Self &__subgraph, const walker &__parent, const walker &__child, const container_insert_arg &__Itc, const container_insert_arg &__Itp)
void insert_subgraph (_Self &__subgraph, const __SequenceCtr1< walker, _Allocator1 > &__parents, const __SequenceCtr2< walker, _Allocator2 > &__children)
void insert_back_subgraph (_Self &__subgraph, const walker &__parent, const walker &__child)
void insert_front_subgraph (_Self &__subgraph, const walker &__parent, const walker &__child)
void add_edge (const walker &__parent, const children_iterator &__ch_it, const walker &__child, const parents_iterator &__pa_it)
void add_edge (const edge &__edge, const container_insert_arg &__Itc, const container_insert_arg &__Itp)
void add_edge (const walker &__parent, const walker &__child, const container_insert_arg &__Itc, const container_insert_arg &__Itp)
void add_edge_back (const walker &__parent, const walker &__child)
void add_edge_front (const walker &__parent, const walker &__child)
allocator_type get_allocator () const
walker ground ()
const_walker ground () const
walker sky ()
const_walker sky () const
children_iterator root_begin ()
children_const_iterator root_begin () const
children_iterator root_end ()
children_const_iterator root_end () const
parents_iterator leaf_begin ()
parents_const_iterator leaf_begin () const
parents_iterator leaf_end ()
parents_const_iterator leaf_end () const
bool empty () const
size_type size () const
size_type max_size () const
void swap (_Self &__x)
walker insert_node_in_graph (_Node *__n, const walker &__parent, const walker &__child, const container_insert_arg &__Itc, const container_insert_arg &__Itp)
walker insert_node_in_graph (_Node *__node, const __SequenceCtr1< walker, _Allocator1 > &__parents, const __SequenceCtr2< walker, _Allocator2 > &__children)
walker insert_node_in_graph (_Node *__node, const walker &__parent, const container_insert_arg &__pref, const __SequenceCtr< walker, _Allocator > &__children)
walker insert_node_in_graph (_Node *__node, const __SequenceCtr< walker, _Allocator > &__parents, const walker &__child, const container_insert_arg &__cref)
walker insert_in_graph (const _Tp &__x, const walker &__parent, const walker &__child, const container_insert_arg &__Itc, const container_insert_arg &__Itp)
walker insert_in_graph (const walker &__parent, const walker &__child, const container_insert_arg &__Itc, const container_insert_arg &__Itp)
walker insert_in_graph (const _Tp &__x, const __SequenceCtr1< walker, _Allocator1 > &__parents, const __SequenceCtr2< walker, _Allocator2 > &__children)
walker insert_in_graph (const __SequenceCtr1< walker, _Allocator1 > &__parents, const __SequenceCtr2< walker, _Allocator2 > &__children)
walker insert_in_graph (const _Tp &__x, const walker &__parent, const container_insert_arg &__pref, const __SequenceCtr< walker, _Allocator > &__children)
walker insert_in_graph (const walker &__parent, const container_insert_arg &__pref, const __SequenceCtr< walker, _Allocator > &__children)
walker insert_in_graph (const _Tp &__x, const __SequenceCtr< walker, _Allocator > &__parents, const walker &__child, const container_insert_arg &__cref)
walker insert_in_graph (const __SequenceCtr< walker, _Allocator > &__parents, const walker &__child, const container_insert_arg &__cref)
void replace_edge_to_child (const walker &__parent, const walker &__child_old, const walker &__child_new)
void replace_edge_to_parent (const walker &__parent_old, const walker &__parent_new, const walker &__child)
void remove_edge (const edge &__edge)
void remove_edge (const walker &__parent, const walker &__child)
void remove_edge_and_deattach (const walker &__parent, const walker &__child)
void sort_child_edges (walker __position, children_iterator first, children_iterator last, Compare comp)
void sort_child_edges (walker __position, Compare comp)
void sort_parent_edges (walker __position, parents_iterator first, parents_iterator last, Compare comp)
void sort_parent_edges (walker __position, Compare comp)
walker insert_node (_Node *_node, const walker &__position, const container_insert_arg &__It)
walker insert_node (const _Tp &__x, const walker &__position, const container_insert_arg &__It)
walker insert_node (const walker &__position, const container_insert_arg &__It)
walker insert_node_before (_Node *_node, const walker &__position, const container_insert_arg &__It)
void insert_node_before (const _Tp &__x, const walker &__position, const container_insert_arg &__It)
void insert_node_before (const walker &__position, const container_insert_arg &__It)
void merge (const walker &__position, const walker &__second, bool merge_parent_edges=true, bool merge_child_edges=true)
void erase (const walker &__position)
void partial_erase_to_parent (const walker &__position, const walker &__parent, unsigned int idx)
void clear_erased_part (erased_part &_ep)
erased_part erase_maximal_subgraph (const walker &__position)
erased_part erase_maximal_subgraph (const __SequenceCtr< walker, _Allocator > &__positions)
erased_part erase_minimal_subgraph (const walker &__position)
erased_part erase_minimal_subgraph (const __SequenceCtr< walker, _Allocator > &__positions)
erased_part erase_maximal_pregraph (const walker &__position)
erased_part erase_maximal_pregraph (const __SequenceCtr< walker, _Allocator > &__positions)
erased_part erase_minimal_pregraph (const walker &__position)
erased_part erase_minimal_pregraph (const __SequenceCtr< walker, _Allocator > &__positions)
bool erase_child (const walker &__position, const children_iterator &__It)
bool erase_parent (const walker &__position, const parents_iterator &__It)

Protected Types

typedef _Base::allocator_type allocator_type

Protected Member Functions

_Node_C_create_node (const _Tp &__x)
_Node_C_create_node ()
void _C_destroy_node (_Node *__p)
void clear_graph (_DG_node< _Tp, _SequenceCtr< void *, _PtrAlloc >, _SequenceCtr< void *, _PtrAlloc >::iterator > *_node)
_DG_node< _Tp, _SequenceCtr
< void *, _PtrAlloc >
, _SequenceCtr< void
*, _PtrAlloc >::iterator > * 
_C_get_node ()
void _C_put_node (_DG_node< _Tp, _SequenceCtr< void *, _PtrAlloc >, _SequenceCtr< void *, _PtrAlloc >::iterator > *__p)
void clear_children ()
void clear_parents ()
void add_all_children (_Output_Iterator fi, _DG_node< _Tp, _SequenceCtr< void *, _PtrAlloc >, _SequenceCtr< void *, _PtrAlloc >::iterator > *_parent)
void add_all_parents (_Output_Iterator fi, _DG_node< _Tp, _SequenceCtr< void *, _PtrAlloc >, _SequenceCtr< void *, _PtrAlloc >::iterator > *_child)

Protected Attributes

_DG_node< _Tp, _SequenceCtr
< void *, _PtrAlloc >
, _SequenceCtr< void
*, _PtrAlloc >::iterator > * 
_C_ground
_DG_node< _Tp, _SequenceCtr
< void *, _PtrAlloc >
, _SequenceCtr< void
*, _PtrAlloc >::iterator > * 
_C_sky
int _C_mark


Detailed Description

template<class _Tp, template< class __Ty, class __AllocT > class _SequenceCtr = std::vector, class _PtrAlloc = __VGTL_DEFAULT_ALLOCATOR(void *), class _Alloc = __VGTL_DEFAULT_ALLOCATOR(_Tp)>
class dag< _Tp, _SequenceCtr, _PtrAlloc, _Alloc >

This class constructs an unlabeled directed acyclic graph (DAG). By default, the children and the parents are collected in an STL vector, but the container can be replaced by any other sequential container.

Definition at line 2634 of file vgtl_dag.h.


Member Typedef Documentation

template<class _Tp , template< class __Ty, class __AllocT > class _SequenceCtr = std::vector, class _PtrAlloc = __VGTL_DEFAULT_ALLOCATOR(void *), class _Alloc = __VGTL_DEFAULT_ALLOCATOR(_Tp)>
typedef _Base::allocator_type dag< _Tp, _SequenceCtr, _PtrAlloc, _Alloc >::allocator_type [protected]

allocator type

Reimplemented from dgraph< _Tp, _SequenceCtr, _PtrAlloc, _Alloc >.

Definition at line 2640 of file vgtl_dag.h.

template<class _Tp , template< class __Ty, class __AllocT > class _SequenceCtr = std::vector, class _PtrAlloc = __VGTL_DEFAULT_ALLOCATOR(void *), class _Alloc = __VGTL_DEFAULT_ALLOCATOR(_Tp)>
typedef _Base::children_const_iterator dag< _Tp, _SequenceCtr, _PtrAlloc, _Alloc >::children_const_iterator

the children const iterator

Reimplemented from dgraph< _Tp, _SequenceCtr, _PtrAlloc, _Alloc >.

Definition at line 2656 of file vgtl_dag.h.

template<class _Tp , template< class __Ty, class __AllocT > class _SequenceCtr = std::vector, class _PtrAlloc = __VGTL_DEFAULT_ALLOCATOR(void *), class _Alloc = __VGTL_DEFAULT_ALLOCATOR(_Tp)>
typedef _Base::children_iterator dag< _Tp, _SequenceCtr, _PtrAlloc, _Alloc >::children_iterator

the children iterator

Reimplemented from dgraph< _Tp, _SequenceCtr, _PtrAlloc, _Alloc >.

Definition at line 2652 of file vgtl_dag.h.

typedef _DG_iterator<_Tp ,const _Tp &,const _Tp *,container_type, children_iterator,children_const_iterator> __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::const_iterator [inherited]

the const iterator

Definition at line 600 of file vgtl_dag.h.

typedef const value_type* __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::const_pointer [inherited]

standard typedef

Definition at line 583 of file vgtl_dag.h.

typedef const value_type& __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::const_reference [inherited]

standard typedef

Definition at line 585 of file vgtl_dag.h.

typedef std::reverse_iterator<const_iterator> __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::const_reverse_iterator [inherited]

the const reverse iterator

Definition at line 604 of file vgtl_dag.h.

template<class _Tp , template< class __Ty, class __AllocT > class _SequenceCtr = std::vector, class _PtrAlloc = __VGTL_DEFAULT_ALLOCATOR(void *), class _Alloc = __VGTL_DEFAULT_ALLOCATOR(_Tp)>
typedef _Base::const_walker dag< _Tp, _SequenceCtr, _PtrAlloc, _Alloc >::const_walker

the const walker

Reimplemented from dgraph< _Tp, _SequenceCtr, _PtrAlloc, _Alloc >.

Definition at line 2650 of file vgtl_dag.h.

typedef _SequenceCtr< void *, _PtrAlloc > __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::container_type [inherited]

typedef ptrdiff_t __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::difference_type [inherited]

standard typedef

Definition at line 587 of file vgtl_dag.h.

typedef std::pair<walker,walker> __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::edge [inherited]

an edge of the graph (parent, child)

Definition at line 626 of file vgtl_dag.h.

typedef std::pair<edge,bool> __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::enhanced_edge [inherited]

an edge with additiona information about erased ground/sky edges

Definition at line 628 of file vgtl_dag.h.

template<class _Tp , template< class __Ty, class __AllocT > class _SequenceCtr = std::vector, class _PtrAlloc = __VGTL_DEFAULT_ALLOCATOR(void *), class _Alloc = __VGTL_DEFAULT_ALLOCATOR(_Tp)>
typedef _Base::erased_part dag< _Tp, _SequenceCtr, _PtrAlloc, _Alloc >::erased_part

the erased part constructed in erasing subgraphs

Reimplemented from dgraph< _Tp, _SequenceCtr, _PtrAlloc, _Alloc >.

Definition at line 2661 of file vgtl_dag.h.

typedef _DG_iterator<_Tp ,_Tp &,_Tp *,container_type,children_iterator, children_const_iterator> __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::iterator [inherited]

the iterator

Definition at line 597 of file vgtl_dag.h.

typedef _Node __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::node_type [inherited]

standard typedef

Definition at line 581 of file vgtl_dag.h.

template<class _Tp , template< class __Ty, class __AllocT > class _SequenceCtr = std::vector, class _PtrAlloc = __VGTL_DEFAULT_ALLOCATOR(void *), class _Alloc = __VGTL_DEFAULT_ALLOCATOR(_Tp)>
typedef _Base::parents_const_iterator dag< _Tp, _SequenceCtr, _PtrAlloc, _Alloc >::parents_const_iterator

the parents const iterator

Reimplemented from dgraph< _Tp, _SequenceCtr, _PtrAlloc, _Alloc >.

Definition at line 2658 of file vgtl_dag.h.

template<class _Tp , template< class __Ty, class __AllocT > class _SequenceCtr = std::vector, class _PtrAlloc = __VGTL_DEFAULT_ALLOCATOR(void *), class _Alloc = __VGTL_DEFAULT_ALLOCATOR(_Tp)>
typedef _Base::parents_iterator dag< _Tp, _SequenceCtr, _PtrAlloc, _Alloc >::parents_iterator

the parents iterator

Reimplemented from dgraph< _Tp, _SequenceCtr, _PtrAlloc, _Alloc >.

Definition at line 2654 of file vgtl_dag.h.

typedef value_type* __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::pointer [inherited]

standard typedef

Definition at line 582 of file vgtl_dag.h.

typedef value_type& __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::reference [inherited]

standard typedef

Definition at line 584 of file vgtl_dag.h.

typedef std::reverse_iterator<iterator> __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::reverse_iterator [inherited]

the reverse iterator

Definition at line 606 of file vgtl_dag.h.

typedef size_t __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::size_type [inherited]

standard typedef

Definition at line 586 of file vgtl_dag.h.

typedef _Tp __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::value_type [inherited]

standard typedef

Definition at line 580 of file vgtl_dag.h.

template<class _Tp , template< class __Ty, class __AllocT > class _SequenceCtr = std::vector, class _PtrAlloc = __VGTL_DEFAULT_ALLOCATOR(void *), class _Alloc = __VGTL_DEFAULT_ALLOCATOR(_Tp)>
typedef _Base::walker dag< _Tp, _SequenceCtr, _PtrAlloc, _Alloc >::walker

the walker

Reimplemented from dgraph< _Tp, _SequenceCtr, _PtrAlloc, _Alloc >.

Definition at line 2648 of file vgtl_dag.h.


Constructor & Destructor Documentation

template<class _Tp , template< class __Ty, class __AllocT > class _SequenceCtr = std::vector, class _PtrAlloc = __VGTL_DEFAULT_ALLOCATOR(void *), class _Alloc = __VGTL_DEFAULT_ALLOCATOR(_Tp)>
dag< _Tp, _SequenceCtr, _PtrAlloc, _Alloc >::dag ( const allocator_type __a = allocator_type()  )  [inline, explicit]

standard constructor

Definition at line 2665 of file vgtl_dag.h.

template<class _Tp , template< class __Ty, class __AllocT > class _SequenceCtr = std::vector, class _PtrAlloc = __VGTL_DEFAULT_ALLOCATOR(void *), class _Alloc = __VGTL_DEFAULT_ALLOCATOR(_Tp)>
dag< _Tp, _SequenceCtr, _PtrAlloc, _Alloc >::dag ( const _Self __dag  )  [inline]

copy constructor

Definition at line 2668 of file vgtl_dag.h.

template<class _Tp , template< class __Ty, class __AllocT > class _SequenceCtr = std::vector, class _PtrAlloc = __VGTL_DEFAULT_ALLOCATOR(void *), class _Alloc = __VGTL_DEFAULT_ALLOCATOR(_Tp)>
dag< _Tp, _SequenceCtr, _PtrAlloc, _Alloc >::dag ( const _Base __dag  )  [inline]

construct dag from directed graph

Definition at line 2674 of file vgtl_dag.h.

template<class _Tp , template< class __Ty, class __AllocT > class _SequenceCtr = std::vector, class _PtrAlloc = __VGTL_DEFAULT_ALLOCATOR(void *), class _Alloc = __VGTL_DEFAULT_ALLOCATOR(_Tp)>
dag< _Tp, _SequenceCtr, _PtrAlloc, _Alloc >::dag ( const erased_part __ep  )  [inline]

construct dag from erased part

Definition at line 2682 of file vgtl_dag.h.


Member Function Documentation

_Node* __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::_C_create_node (  )  [inline, protected, inherited]

construct a new tree node containing default data

Definition at line 659 of file vgtl_dag.h.

_Node* __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::_C_create_node ( const _Tp &  __x  )  [inline, protected, inherited]

construct a new tree node containing data __x

Definition at line 645 of file vgtl_dag.h.

void __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::_C_destroy_node ( _Node __p  )  [inline, protected, inherited]

construct a new tree node containing default data

Definition at line 673 of file vgtl_dag.h.

_DG_node<_Tp ,_SequenceCtr< void *, _PtrAlloc > ,_SequenceCtr< void *, _PtrAlloc >::iterator >* _DG_base< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _Alloc >::_C_get_node (  )  [inline, protected, inherited]

allocate a new node

Definition at line 405 of file vgtl_dagbase.h.

void _DG_base< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _Alloc >::_C_put_node ( _DG_node< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator > *  __p  )  [inline, protected, inherited]

deallocate a node

Definition at line 408 of file vgtl_dagbase.h.

void _DG_base< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _Alloc >::add_all_children ( _Output_Iterator  fi,
_DG_node< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator > *  _parent 
) [inline, protected, inherited]

add all children to the parent _parent. fi is a iterator to the children container of the parent

void _DG_base< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _Alloc >::add_all_parents ( _Output_Iterator  fi,
_DG_node< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator > *  _child 
) [inline, protected, inherited]

add all parents to the child _child. fi is a iterator to the parents container of the child

void __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::add_edge ( const walker __parent,
const walker __child,
const container_insert_arg &  __Itc,
const container_insert_arg &  __Itp 
) [inline, inherited]

add an edge between __parent and __child at positions __Itc and __Itp, respectively

Definition at line 1079 of file vgtl_dag.h.

void __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::add_edge ( const edge __edge,
const container_insert_arg &  __Itc,
const container_insert_arg &  __Itp 
) [inline, inherited]

add one edge between two nodes at the positions described by __Itc and __Itp.

Definition at line 1070 of file vgtl_dag.h.

void dgraph< _Tp , _SequenceCtr , _PtrAlloc , _Alloc >::add_edge ( const walker __parent,
const children_iterator __ch_it,
const walker __child,
const parents_iterator __pa_it 
) [inline, inherited]

add an edge between __parent and __child at specific positions __ch_it and __pa_it.

Definition at line 2372 of file vgtl_dag.h.

void dgraph< _Tp , _SequenceCtr , _PtrAlloc , _Alloc >::add_edge_back ( const walker __parent,
const walker __child 
) [inline, inherited]

add an edge between __parent and __child at the end of the children and parents containers.

Definition at line 2382 of file vgtl_dag.h.

void dgraph< _Tp , _SequenceCtr , _PtrAlloc , _Alloc >::add_edge_front ( const walker __parent,
const walker __child 
) [inline, inherited]

add an edge between __parent and __child at the beginning of the children and parents containers.

Definition at line 2392 of file vgtl_dag.h.

walker dgraph< _Tp , _SequenceCtr , _PtrAlloc , _Alloc >::between ( const __SequenceCtr< walker, _Allocator > &  __parents,
const walker __child,
const parents_iterator __pit,
const _Tp &  __x 
) [inline, inherited]

here a new node is inserted between many parents and one child but the previous bonds are not broken, the node is always new

Definition at line 2508 of file vgtl_dag.h.

walker dgraph< _Tp , _SequenceCtr , _PtrAlloc , _Alloc >::between ( const walker __parent,
const children_iterator __cit,
const __SequenceCtr< walker, _Allocator > &  __children,
const _Tp &  __x 
) [inline, inherited]

here a new node is inserted between one parent and many children but the previous bonds are not broken, the node is always new

Definition at line 2408 of file vgtl_dag.h.

walker dgraph< _Tp , _SequenceCtr , _PtrAlloc , _Alloc >::between ( const __SequenceCtr1< walker, _Allocator1 > &  __parents,
const __SequenceCtr2< walker, _Allocator2 > &  __children,
const _Tp &  __x 
) [inline, inherited]

here a new node is inserted between many parents and many children but the previous bonds are not broken, the node is always new

Definition at line 2262 of file vgtl_dag.h.

walker dgraph< _Tp , _SequenceCtr , _PtrAlloc , _Alloc >::between ( const walker __parent,
const children_iterator __cit,
const walker __child,
const parents_iterator __pit,
const _Tp &  __x 
) [inline, inherited]

here a new node is inserted between a parent node and a child node but the previous bonds between the two are not broken, the node is always new with data __x.

Definition at line 2160 of file vgtl_dag.h.

walker dgraph< _Tp , _SequenceCtr , _PtrAlloc , _Alloc >::between_back ( const __SequenceCtr< walker, _Allocator > &  __parents,
const walker __child,
const _Tp &  __x 
) [inline, inherited]

here a new node is inserted between many parents and one child but the previous bonds are not broken, the node is always new. At the child the new parent is put last.

Definition at line 2562 of file vgtl_dag.h.

walker dgraph< _Tp , _SequenceCtr , _PtrAlloc , _Alloc >::between_back ( const walker __parent,
const __SequenceCtr< walker, _Allocator > &  __children,
const _Tp &  __x 
) [inline, inherited]

here a new node is inserted between one parent and many children but the previous bonds are not broken, the node is always new. At the parent the new child is put last.

Definition at line 2463 of file vgtl_dag.h.

walker dgraph< _Tp , _SequenceCtr , _PtrAlloc , _Alloc >::between_back ( const walker __parent,
const walker __child,
const _Tp &  __x 
) [inline, inherited]

insert the node as the last child between parent and child, without breaking old bonds.

Definition at line 2195 of file vgtl_dag.h.

walker dgraph< _Tp , _SequenceCtr , _PtrAlloc , _Alloc >::between_front ( const __SequenceCtr< walker, _Allocator > &  __parents,
const walker __child,
const _Tp &  __x 
) [inline, inherited]

here a new node is inserted between many parents and one child but the previous bonds are not broken, the node is always new. At the child the new parent is put first.

Definition at line 2590 of file vgtl_dag.h.

walker dgraph< _Tp , _SequenceCtr , _PtrAlloc , _Alloc >::between_front ( const walker __parent,
const __SequenceCtr< walker, _Allocator > &  __children,
const _Tp &  __x 
) [inline, inherited]

here a new node is inserted between one parent and many children but the previous bonds are not broken, the node is always new. At the parent the new child is put first.

Definition at line 2493 of file vgtl_dag.h.

walker dgraph< _Tp , _SequenceCtr , _PtrAlloc , _Alloc >::between_front ( const walker __parent,
const walker __child,
const _Tp &  __x 
) [inline, inherited]

Here the inserted node is the first child of its parent and first parent of its child. Insert the node without breaking old bonds.

Definition at line 2226 of file vgtl_dag.h.

template<class _Tp , template< class __Ty, class __AllocT > class _SequenceCtr = std::vector, class _PtrAlloc = __VGTL_DEFAULT_ALLOCATOR(void *), class _Alloc = __VGTL_DEFAULT_ALLOCATOR(_Tp)>
bool dag< _Tp, _SequenceCtr, _PtrAlloc, _Alloc >::check_acyclicity ( const walker __parent,
const walker __child 
) [inline]

This method checks, whether the dag is indeed acyclic. This is NYI!

Definition at line 2705 of file vgtl_dag.h.

void dgraph< _Tp , _SequenceCtr , _PtrAlloc , _Alloc >::clear (  )  [inline, inherited]

void _DG_base< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _Alloc >::clear_children (  )  [inline, protected, inherited]

clear all children of the root node

Definition at line 420 of file vgtl_dagbase.h.

void __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::clear_erased_part ( erased_part _ep  )  [inline, inherited]

clear all nodes in an erased part

Definition at line 1751 of file vgtl_dag.h.

void _DG_base< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _Alloc >::clear_graph ( _DG_node< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator > *  _node  )  [protected, inherited]

removes recursively all nodes downward starting from _node.

void _DG_base< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _Alloc >::clear_parents (  )  [inline, protected, inherited]

clear all parents of the leaf node

Definition at line 423 of file vgtl_dagbase.h.

bool __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::empty (  )  const [inline, inherited]

returns true if the DG is empty

Definition at line 767 of file vgtl_dag.h.

void __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::erase ( const walker __position  )  [inline, inherited]

erase a node from the DG except the sky and ground

Definition at line 1400 of file vgtl_dag.h.

bool __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::erase_child ( const walker __position,
const children_iterator __It 
) [inline, inherited]

Erase a child of __position. This works if and only if the child has only one child and no other parents.

Definition at line 1904 of file vgtl_dag.h.

erased_part __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::erase_maximal_pregraph ( const __SequenceCtr< walker, _Allocator > &  __positions  )  [inline, inherited]

here every child is removed till the sky included all nodes from __positions. The removed subgraph is returned. The subgraph is maximal, i.e. all nodes are removed, which are reachable from any node from __positions by walking up.

Definition at line 1868 of file vgtl_dag.h.

erased_part __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::erase_maximal_pregraph ( const walker __position  )  [inline, inherited]

here every child is removed till the sky node. included the node at __position. The removed subgraph is returned. The subgraph is maximal, i.e. all nodes are removed, which are reachable from __position by walking upwards.

Definition at line 1834 of file vgtl_dag.h.

erased_part __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::erase_maximal_subgraph ( const __SequenceCtr< walker, _Allocator > &  __positions  )  [inline, inherited]

here every child is removed till the last base node, included all nodes from __positions. The removed subgraph is returned. The subgraph is maximal, i.e. all nodes are removed, which are reachable from any node from __positions by walking down.

Definition at line 1797 of file vgtl_dag.h.

erased_part __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::erase_maximal_subgraph ( const walker __position  )  [inline, inherited]

here every child is removed till the last base node, included the node at __position. The removed subgraph is returned. The subgraph is maximal, i.e. all nodes are removed, which are reachable from __position by walking down.

Definition at line 1763 of file vgtl_dag.h.

erased_part __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::erase_minimal_pregraph ( const __SequenceCtr< walker, _Allocator > &  __positions  )  [inline, inherited]

here every child is removed till the sky. included all nodes from __positions. The removed subgraph is returned. The subgraph is minimal, i.e. only nodes are removed, which have no other ancestor than any node in __positions. I.e., when walking towards the ground, there is no way which bypasses all nodes in __positions.

Definition at line 1888 of file vgtl_dag.h.

erased_part __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::erase_minimal_pregraph ( const walker __position  )  [inline, inherited]

here every child is removed till the sky. included the node at __position. The removed subgraph is returned. The subgraph is minimal, i.e. only nodes are removed, which have no other descendant than __position. I.e., when walking towards the sky, there is no way which bypasses __position.

Definition at line 1850 of file vgtl_dag.h.

erased_part __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::erase_minimal_subgraph ( const __SequenceCtr< walker, _Allocator > &  __positions  )  [inline, inherited]

here every child is removed till the last base node, included all nodes from __positions. The removed subgraph is returned. The subgraph is minimal, i.e. only nodes are removed, which have no other ancestor than any node in __positions. I.e., when walking towards the ground, there is no way which bypasses all nodes in __positions.

Definition at line 1817 of file vgtl_dag.h.

erased_part __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::erase_minimal_subgraph ( const walker __position  )  [inline, inherited]

here every child is removed till the last base node, included the node at __position. The removed subgraph is returned. The subgraph is minimal, i.e. only nodes are removed, which have no other ancestor than __position. I.e., when walking towards the ground, there is no way which bypasses __position.

Definition at line 1779 of file vgtl_dag.h.

bool __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::erase_parent ( const walker __position,
const parents_iterator __It 
) [inline, inherited]

Erase a parent of __position. This works if and only if the parent has only one parent and no other children.

Definition at line 1930 of file vgtl_dag.h.

allocator_type __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::get_allocator (  )  const [inline, inherited]

const_walker __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::ground (  )  const [inline, inherited]

return a const walker to the virtual ground node.

Definition at line 697 of file vgtl_dag.h.

walker __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::ground (  )  [inline, inherited]

return a walker to the virtual ground node.

Definition at line 687 of file vgtl_dag.h.

void dgraph< _Tp , _SequenceCtr , _PtrAlloc , _Alloc >::insert_back_subgraph ( _Self __subgraph,
const walker __parent,
const walker __child 
) [inline, inherited]

here a subgraph is inserted between a parent and a child, at the end of the children resp. parents lists.

Definition at line 2331 of file vgtl_dag.h.

void dgraph< _Tp , _SequenceCtr , _PtrAlloc , _Alloc >::insert_front_subgraph ( _Self __subgraph,
const walker __parent,
const walker __child 
) [inline, inherited]

here a subgraph is inserted between a parent and a child, at the front of the children resp. parents lists.

Definition at line 2344 of file vgtl_dag.h.

walker __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::insert_in_graph ( const __SequenceCtr< walker, _Allocator > &  __parents,
const walker __child,
const container_insert_arg &  __cref 
) [inline, inherited]

insert a node with default data into the graph between all parents from __parents and the child __child.

Definition at line 1006 of file vgtl_dag.h.

walker __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::insert_in_graph ( const _Tp &  __x,
const __SequenceCtr< walker, _Allocator > &  __parents,
const walker __child,
const container_insert_arg &  __cref 
) [inline, inherited]

insert a node with data __x into the graph between all parents from __parents and the child __child.

Definition at line 991 of file vgtl_dag.h.

walker __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::insert_in_graph ( const walker __parent,
const container_insert_arg &  __pref,
const __SequenceCtr< walker, _Allocator > &  __children 
) [inline, inherited]

insert a node with data __x into the graph between the parent __parent and all children from __children.

Definition at line 952 of file vgtl_dag.h.

walker __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::insert_in_graph ( const _Tp &  __x,
const walker __parent,
const container_insert_arg &  __pref,
const __SequenceCtr< walker, _Allocator > &  __children 
) [inline, inherited]

insert a node with data __x into the graph between the parent __parent and all children from __children.

Definition at line 938 of file vgtl_dag.h.

walker __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::insert_in_graph ( const __SequenceCtr1< walker, _Allocator1 > &  __parents,
const __SequenceCtr2< walker, _Allocator2 > &  __children 
) [inline, inherited]

insert a node with default data into the graph between all parents from __parents and all children from __children.

Definition at line 900 of file vgtl_dag.h.

walker __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::insert_in_graph ( const _Tp &  __x,
const __SequenceCtr1< walker, _Allocator1 > &  __parents,
const __SequenceCtr2< walker, _Allocator2 > &  __children 
) [inline, inherited]

insert a node with data __x into the graph between all parents from __parents and all children from __children.

Definition at line 885 of file vgtl_dag.h.

walker __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::insert_in_graph ( const walker __parent,
const walker __child,
const container_insert_arg &  __Itc,
const container_insert_arg &  __Itp 
) [inline, inherited]

insert node with default data into the graph between __parent and __child, the edge at the specific positions described by __Itc and __Itp.

Definition at line 821 of file vgtl_dag.h.

walker __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::insert_in_graph ( const _Tp &  __x,
const walker __parent,
const walker __child,
const container_insert_arg &  __Itc,
const container_insert_arg &  __Itp 
) [inline, inherited]

insert node with data __n into the graph between __parent and __child, the edge at the specific positions described by __Itc and __Itp.

Definition at line 807 of file vgtl_dag.h.

walker __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::insert_node ( const walker __position,
const container_insert_arg &  __It 
) [inline, inherited]

insert a new node with default data as child of __position

Definition at line 1281 of file vgtl_dag.h.

walker __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::insert_node ( const _Tp &  __x,
const walker __position,
const container_insert_arg &  __It 
) [inline, inherited]

insert a new node with data __x as child of __position

Definition at line 1275 of file vgtl_dag.h.

walker __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::insert_node ( _Node _node,
const walker __position,
const container_insert_arg &  __It 
) [inline, inherited]

insert one node as child of __position

Definition at line 1261 of file vgtl_dag.h.

void __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::insert_node_before ( const walker __position,
const container_insert_arg &  __It 
) [inline, inherited]

insert a new node with default data as parent of __position

Definition at line 1305 of file vgtl_dag.h.

void __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::insert_node_before ( const _Tp &  __x,
const walker __position,
const container_insert_arg &  __It 
) [inline, inherited]

insert a new node with data __x as parent of __position

Definition at line 1300 of file vgtl_dag.h.

walker __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::insert_node_before ( _Node _node,
const walker __position,
const container_insert_arg &  __It 
) [inline, inherited]

insert a node as parent of __position

Definition at line 1286 of file vgtl_dag.h.

walker __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::insert_node_in_graph ( _Node __node,
const __SequenceCtr< walker, _Allocator > &  __parents,
const walker __child,
const container_insert_arg &  __cref 
) [inline, inherited]

insert node __n into the graph between all parents from __parents and the child __child.

Definition at line 966 of file vgtl_dag.h.

walker __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::insert_node_in_graph ( _Node __node,
const walker __parent,
const container_insert_arg &  __pref,
const __SequenceCtr< walker, _Allocator > &  __children 
) [inline, inherited]

insert node __n into the graph between the parent __parent and all children from __children.

Definition at line 913 of file vgtl_dag.h.

walker __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::insert_node_in_graph ( _Node __node,
const __SequenceCtr1< walker, _Allocator1 > &  __parents,
const __SequenceCtr2< walker, _Allocator2 > &  __children 
) [inline, inherited]

insert node __n into the graph between all parents from __parents and all children from __children.

Definition at line 854 of file vgtl_dag.h.

walker __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::insert_node_in_graph ( _Node __n,
const walker __parent,
const walker __child,
const container_insert_arg &  __Itc,
const container_insert_arg &  __Itp 
) [inline, inherited]

insert node __n into the graph between __parent and __child, the edge at the specific positions described by __Itc and __Itp.

Definition at line 791 of file vgtl_dag.h.

void __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::insert_subgraph ( _Self __subgraph,
const __SequenceCtr1< walker, _Allocator1 > &  __parents,
const __SequenceCtr2< walker, _Allocator2 > &  __children 
) [inline, inherited]

in this method one DG is inserted into another DG between the parents __parents and the children __children.

Definition at line 1020 of file vgtl_dag.h.

void __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::insert_subgraph ( _Self __subgraph,
const walker __parent,
const walker __child,
const container_insert_arg &  __Itc,
const container_insert_arg &  __Itp 
) [inline, inherited]

insert a subgraph into the graph between __parent and __child, the edge at the specific positions described by __Itc and __Itp.

Definition at line 832 of file vgtl_dag.h.

void dgraph< _Tp , _SequenceCtr , _PtrAlloc , _Alloc >::insert_subgraph ( _Self __subgraph,
const walker __parent,
const children_iterator __ch_it,
const walker __child,
const parents_iterator __pa_it 
) [inline, inherited]

here a subgraph is inserted between a parent and a child, at specific positions __ch_it and __pa_it.

Definition at line 2320 of file vgtl_dag.h.

parents_const_iterator __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::leaf_begin (  )  const [inline, inherited]

return the first leaf of the directed graph

Definition at line 728 of file vgtl_dag.h.

parents_iterator __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::leaf_begin (  )  [inline, inherited]

return the first leaf of the directed graph

Definition at line 721 of file vgtl_dag.h.

parents_const_iterator __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::leaf_end (  )  const [inline, inherited]

return beyond the last leaf of the directed graph

Definition at line 731 of file vgtl_dag.h.

parents_iterator __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::leaf_end (  )  [inline, inherited]

return beyond the last leaf of the directed graph

Definition at line 724 of file vgtl_dag.h.

size_type __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::max_size (  )  const [inline, inherited]

the maximum size of a DG is virtually unlimited

Definition at line 778 of file vgtl_dag.h.

void __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::merge ( const walker __position,
const walker __second,
bool  merge_parent_edges = true,
bool  merge_child_edges = true 
) [inline, inherited]

merge two nodes, call also the merge method for the node data

Definition at line 1311 of file vgtl_dag.h.

template<class _Tp , template< class __Ty, class __AllocT > class _SequenceCtr = std::vector, class _PtrAlloc = __VGTL_DEFAULT_ALLOCATOR(void *), class _Alloc = __VGTL_DEFAULT_ALLOCATOR(_Tp)>
_Self& dag< _Tp, _SequenceCtr, _PtrAlloc, _Alloc >::operator= ( const erased_part __ep  )  [inline]

assignment from erased part

Definition at line 2729 of file vgtl_dag.h.

template<class _Tp , template< class __Ty, class __AllocT > class _SequenceCtr = std::vector, class _PtrAlloc = __VGTL_DEFAULT_ALLOCATOR(void *), class _Alloc = __VGTL_DEFAULT_ALLOCATOR(_Tp)>
_Self& dag< _Tp, _SequenceCtr, _PtrAlloc, _Alloc >::operator= ( const _RV_DG &  __rl  )  [inline]

assignment from part of an erased part

Definition at line 2721 of file vgtl_dag.h.

void __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::partial_erase_to_parent ( const walker __position,
const walker __parent,
unsigned int  idx 
) [inline, inherited]

split a node in two, the first connected to the __parent, the second connected to all other parents. Then erase the first node.

Definition at line 1461 of file vgtl_dag.h.

void __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::remove_edge ( const walker __parent,
const walker __child 
) [inline, inherited]

just remove one edge between __parent and __child

Definition at line 1214 of file vgtl_dag.h.

void __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::remove_edge ( const edge __edge  )  [inline, inherited]

remove an edge with a particular parent and child

Definition at line 1197 of file vgtl_dag.h.

void __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::remove_edge_and_deattach ( const walker __parent,
const walker __child 
) [inline, inherited]

remove one egde and don't reconnect the node to sky/ground

Definition at line 1201 of file vgtl_dag.h.

void __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::replace_edge_to_child ( const walker __parent,
const walker __child_old,
const walker __child_new 
) [inline, inherited]

change the edge from __parent to __child_old to an edge from __parent to __child_new.

Definition at line 1125 of file vgtl_dag.h.

void __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::replace_edge_to_parent ( const walker __parent_old,
const walker __parent_new,
const walker __child 
) [inline, inherited]

change the edge from __parent_old to __child to an edge from __parent_new to __child.

Definition at line 1163 of file vgtl_dag.h.

children_const_iterator __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::root_begin (  )  const [inline, inherited]

return the first root of the directed graph

Definition at line 714 of file vgtl_dag.h.

children_iterator __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::root_begin (  )  [inline, inherited]

return the first root of the directed graph

Definition at line 707 of file vgtl_dag.h.

children_const_iterator __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::root_end (  )  const [inline, inherited]

return beyond the last root of the directed graph

Definition at line 717 of file vgtl_dag.h.

children_iterator __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::root_end (  )  [inline, inherited]

return beyond the last root of the directed graph

Definition at line 710 of file vgtl_dag.h.

size_type __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::size (  )  const [inline, inherited]

returns the size of the DG (number of nodes)

Definition at line 771 of file vgtl_dag.h.

const_walker __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::sky (  )  const [inline, inherited]

return a const walker to the virtual sky node.

Definition at line 702 of file vgtl_dag.h.

walker __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::sky (  )  [inline, inherited]

return a walker to the virtual sky node.

Definition at line 692 of file vgtl_dag.h.

void __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::sort_child_edges ( walker  __position,
Compare  comp 
) [inline, inherited]

sort all child edges according to comp

Definition at line 1250 of file vgtl_dag.h.

void __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::sort_child_edges ( walker  __position,
children_iterator  first,
children_iterator  last,
Compare  comp 
) [inline, inherited]

sort the child edges in the range [first,last) according to comp

Definition at line 1238 of file vgtl_dag.h.

void __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::sort_parent_edges ( walker  __position,
Compare  comp 
) [inline, inherited]

sort all parent edges according to comp

Definition at line 1256 of file vgtl_dag.h.

void __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::sort_parent_edges ( walker  __position,
parents_iterator  first,
parents_iterator  last,
Compare  comp 
) [inline, inherited]

sort the parent edges in the range [first,last) according to comp

Definition at line 1244 of file vgtl_dag.h.

walker dgraph< _Tp , _SequenceCtr , _PtrAlloc , _Alloc >::split ( const __SequenceCtr< walker, _Allocator > &  __parents,
const walker __child,
const parents_iterator __pr_it,
const _Tp &  __x 
) [inline, inherited]

here a new node is inserted between many parents and one child, and the previous bonds are broken, the node is always new.

Definition at line 2521 of file vgtl_dag.h.

walker dgraph< _Tp , _SequenceCtr , _PtrAlloc , _Alloc >::split ( const walker __parent,
const children_iterator __ch_it,
const __SequenceCtr< walker, _Allocator > &  __children,
const _Tp &  __x 
) [inline, inherited]

here a new node is inserted between one parent and many children, and the previous bonds are broken, the node is always new.

Definition at line 2421 of file vgtl_dag.h.

void dgraph< _Tp , _SequenceCtr , _PtrAlloc , _Alloc >::split ( const __SequenceCtr1< walker, _Allocator1 > &  __parents,
const __SequenceCtr2< walker, _Allocator2 > &  __children,
const _Tp &  __x 
) [inline, inherited]

here a new node is inserted between many parents and many children, and the previous bonds are broken, the node is always new.

Definition at line 2294 of file vgtl_dag.h.

walker dgraph< _Tp , _SequenceCtr , _PtrAlloc , _Alloc >::split ( const walker __parent,
const children_iterator __ch_it,
const walker __child,
const parents_iterator __pa_it,
const _Tp &  __x 
) [inline, inherited]

here a new node is inserted between a parent node and a child node and the previous bonds between them are broken, the node is always new with data __x.

Definition at line 2173 of file vgtl_dag.h.

walker dgraph< _Tp , _SequenceCtr , _PtrAlloc , _Alloc >::split_back ( const __SequenceCtr< walker, _Allocator > &  __parents,
const walker __child,
const _Tp &  __x 
) [inline, inherited]

here a new node is inserted between many parents and one child, and the previous bonds are broken, the node is always new. At the child the new parent is put last.

Definition at line 2548 of file vgtl_dag.h.

walker dgraph< _Tp , _SequenceCtr , _PtrAlloc , _Alloc >::split_back ( const walker __parent,
const __SequenceCtr< walker, _Allocator > &  __children,
const _Tp &  __x 
) [inline, inherited]

here a new node is inserted between one parent and many children, and the previous bonds are broken, the node is always new. At the parent the new child is put last.

Definition at line 2448 of file vgtl_dag.h.

walker dgraph< _Tp , _SequenceCtr , _PtrAlloc , _Alloc >::split_back ( const walker __parent,
const walker __child,
const _Tp &  __x 
) [inline, inherited]

insert the node as the last child between parent and child, with breaking old bonds.

Definition at line 2208 of file vgtl_dag.h.

walker dgraph< _Tp , _SequenceCtr , _PtrAlloc , _Alloc >::split_front ( const __SequenceCtr< walker, _Allocator > &  __parents,
const walker __child,
const _Tp &  __x 
) [inline, inherited]

here a new node is inserted between many parents and one child, and the previous bonds are broken, the node is always new. At the child the new parent is put first.

Definition at line 2576 of file vgtl_dag.h.

walker dgraph< _Tp , _SequenceCtr , _PtrAlloc , _Alloc >::split_front ( const walker __parent,
const __SequenceCtr< walker, _Allocator > &  __children,
const _Tp &  __x 
) [inline, inherited]

here a new node is inserted between one parent and many children, and the previous bonds are broken, the node is always new. At the parent the new child is put first.

Definition at line 2478 of file vgtl_dag.h.

walker dgraph< _Tp , _SequenceCtr , _PtrAlloc , _Alloc >::split_front ( const walker __parent,
const walker __child,
const _Tp &  __x 
) [inline, inherited]

Here the inserted node is the first child of its parent and first parent of its child. Insert the node and break old bonds.

Definition at line 2239 of file vgtl_dag.h.

void __DG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc >::swap ( _Self __x  )  [inline, inherited]

swap two DGs

Definition at line 781 of file vgtl_dag.h.


Member Data Documentation

_DG_node<_Tp ,_SequenceCtr< void *, _PtrAlloc > ,_SequenceCtr< void *, _PtrAlloc >::iterator >* _DG_base< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _Alloc >::_C_ground [protected, inherited]

the virtual ground node (below all roots)

Definition at line 413 of file vgtl_dagbase.h.

int _DG_base< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _Alloc >::_C_mark [protected, inherited]

an internal counter for setting marks during certain algorithms

Definition at line 417 of file vgtl_dagbase.h.

_DG_node<_Tp ,_SequenceCtr< void *, _PtrAlloc > ,_SequenceCtr< void *, _PtrAlloc >::iterator >* _DG_base< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _Alloc >::_C_sky [protected, inherited]

the virtual sky node (above all leafs)

Definition at line 415 of file vgtl_dagbase.h.


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

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