__LDG< _Tp, _Te, _Ctr, _Iterator, _CIterator, _Inserter, _NAlloc, _EAlloc > Class Template Reference
[Classes and types for internal use]

Labelled directed graph base class. More...

#include <vgtl_ldag.h>

Inheritance diagram for __LDG< _Tp, _Te, _Ctr, _Iterator, _CIterator, _Inserter, _NAlloc, _EAlloc >:

Inheritance graph
[legend]
Collaboration diagram for __LDG< _Tp, _Te, _Ctr, _Iterator, _CIterator, _Inserter, _NAlloc, _EAlloc >:

Collaboration graph
[legend]

List of all members.

Public Types

typedef _Ctr container_type
typedef _Iterator out_iterator
typedef _Iterator in_iterator
typedef _CIterator out_const_iterator
typedef _CIterator in_const_iterator
typedef _Base::node_allocator_type node_allocator_type
typedef _Base::edge_allocator_type edge_allocator_type
typedef _LDG_iterator< _Tp,
_Tp &, _Tp *, container_type,
children_iterator,
children_const_iterator, _Te > 
iterator
typedef _LDG_iterator< _Tp,
const _Tp &, const _Tp
*, container_type,
children_iterator,
children_const_iterator, _Te > 
const_iterator
typedef std::reverse_iterator
< const_iterator
const_reverse_iterator
typedef std::reverse_iterator
< iterator
reverse_iterator
typedef _LDG_walker< _Tp, _Tp
&, _Tp *, container_type,
children_iterator,
children_const_iterator, _Te > 
walker
typedef _LDG_walker< _Tp,
const _Tp &, const _Tp
*, container_type,
children_iterator,
children_const_iterator, _Te > 
const_walker
typedef _Tp value_type
typedef _Node node_type
typedef _Edge edge_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

node_allocator_type get_node_allocator () const
edge_allocator_type get_edge_allocator () const
 __LDG (const allocator_type &__a=allocator_type())
walker ground ()
walker sky ()
const_walker ground () const
const_walker sky () 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_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)
void insert_subgraph (_Self &__subgraph, const walker &__parent, const walker &__child, const container_insert_arg &__Itc, const container_insert_arg &__Itp)
template<template< class __Tp, class __AllocTp > class __SequenceCtr1, template< class __Tp, class __AllocTp > class __SequenceCtr2, class _Allocator1 , class _Allocator2 >
walker insert_node_in_graph (_Node *__node, const __SequenceCtr1< walker, _Allocator1 > &__parents, const __SequenceCtr2< walker, _Allocator2 > &__children)
template<template< class __Tp, class __AllocTp > class __SequenceCtr1, template< class __Tp, class __AllocTp > class __SequenceCtr2, class _Allocator1 , class _Allocator2 >
walker insert_in_graph (const _Tp &__x, const __SequenceCtr1< walker, _Allocator1 > &__parents, const __SequenceCtr2< walker, _Allocator2 > &__children)
template<template< class __Tp, class __AllocTp > class __SequenceCtr1, template< class __Tp, class __AllocTp > class __SequenceCtr2, class _Allocator1 , class _Allocator2 >
walker insert_in_graph (const __SequenceCtr1< walker, _Allocator1 > &__parents, const __SequenceCtr2< walker, _Allocator2 > &__children)
template<template< class __Tp, class __AllocTp > class __SequenceCtr, class _Allocator >
walker insert_node_in_graph (_Node *__node, const walker &__parent, const container_insert_arg &__pref, const __SequenceCtr< walker, _Allocator > &__children)
template<template< class __Tp, class __AllocTp > class __SequenceCtr, class _Allocator >
walker insert_in_graph (const _Tp &__x, const walker &__parent, const container_insert_arg &__pref, const __SequenceCtr< walker, _Allocator > &__children)
template<template< class __Tp, class __AllocTp > class __SequenceCtr, class _Allocator >
walker insert_in_graph (const walker &__parent, const container_insert_arg &__pref, const __SequenceCtr< walker, _Allocator > &__children)
template<template< class __Tp, class __AllocTp > class __SequenceCtr, class _Allocator >
walker insert_node_in_graph (_Node *__node, const __SequenceCtr< walker, _Allocator > &__parents, const walker &__child, const container_insert_arg &__cref)
template<template< class __Tp, class __AllocTp > class __SequenceCtr, class _Allocator >
walker insert_in_graph (const _Tp &__x, const __SequenceCtr< walker, _Allocator > &__parents, const walker &__child, const container_insert_arg &__cref)
template<template< class __Tp, class __AllocTp > class __SequenceCtr, class _Allocator >
walker insert_in_graph (const __SequenceCtr< walker, _Allocator > &__parents, const walker &__child, const container_insert_arg &__cref)
template<template< class __Tp, class __AllocTp > class __SequenceCtr1, template< class __Tp, class __AllocTp > class __SequenceCtr2, class _Allocator1 , class _Allocator2 >
void insert_subgraph (_Self &__subgraph, const __SequenceCtr1< walker, _Allocator1 > &__parents, const __SequenceCtr2< walker, _Allocator2 > &__children)
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 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_and_deattach (const walker &__parent, const walker &__child)
void remove_edge (const walker &__parent, const walker &__child)
template<class Compare >
void sort_child_edges (walker __position, children_iterator first, children_iterator last, Compare comp)
template<class Compare >
void sort_parent_edges (walker __position, parents_iterator first, parents_iterator last, Compare comp)
template<class Compare >
void sort_child_edges (walker __position, Compare comp)
template<class Compare >
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_minimal_subgraph (const walker &__position)
template<template< class __Tp, class __AllocTp > class __SequenceCtr, class _Allocator >
erased_part erase_maximal_subgraph (const __SequenceCtr< walker, _Allocator > &__positions)
template<template< class __Tp, class __AllocTp > class __SequenceCtr, class _Allocator >
erased_part erase_minimal_subgraph (const __SequenceCtr< walker, _Allocator > &__positions)
erased_part erase_maximal_pregraph (const walker &__position)
erased_part erase_minimal_pregraph (const walker &__position)
template<template< class __Tp, class __AllocTp > class __SequenceCtr, class _Allocator >
erased_part erase_maximal_pregraph (const __SequenceCtr< walker, _Allocator > &__positions)
template<template< class __Tp, class __AllocTp > class __SequenceCtr, class _Allocator >
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)
void clear ()
 __LDG (const _Self &__x)
 ~__LDG ()
_Selfoperator= (const _Self &__x)
_Selfoperator= (const _RV_LDG &__rl)
_Selfoperator= (const erased_part &__ep)
out_iterator source_begin ()
out_iterator root_begin ()
out_iterator source_end ()
out_iterator root_end ()
out_const_iterator source_begin () const
out_iterator root_begin ()
out_const_iterator source_end () const
out_iterator root_end ()
in_iterator sink_begin ()
in_iterator leaf_begin ()
in_iterator sink_end ()
in_iterator leaf_end ()
in_const_iterator sink_begin () const
in_iterator leaf_begin ()
in_const_iterator sink_end () const
in_iterator leaf_end ()

Protected Types

typedef std::pair< _RV_LDG,
std::vector< enhanced_edge > > 
erased_part

Protected Member Functions

_Node_C_create_node (const _Tp &__x)
_Node_C_create_node ()
_Edge_C_create_edge (const _Te &__x)
_Edge_C_create_edge ()
_Edge_C_create_edge (const _Te &__x, _Node *__s, _Node *__t)
_Edge_C_create_edge (_Node *__s, _Node *__t)
void clear_graph (_LDG_node< _Tp, _Ctr, _Iterator > *_node)
_LDG_node< _Tp, _Ctr, _Iterator > * _C_get_node ()
void _C_put_node (_LDG_node< _Tp, _Ctr, _Iterator > *__p)
_LDG_edge< _Te, _Node > * _C_get_edge ()
void _C_put_edge (_LDG_edge< _Te, _Node > *__p)
void clear_out_edges ()
void clear_in_edges ()
void add_all_out_edges (_Output_Iterator fi, _LDG_node< _Tp, _Ctr, _Iterator > *_parent)
void add_all_in_edges (_Output_Iterator fi, _LDG_node< _Tp, _Ctr, _Iterator > *_child)

Protected Attributes

_LDG_node< _Tp, _Ctr, _Iterator > * _C_ground
_LDG_node< _Tp, _Ctr, _Iterator > * _C_sky
int _C_mark


Detailed Description

template<class _Tp, class _Te, class _Ctr, class _Iterator, class _CIterator, class _Inserter, class _NAlloc, class _EAlloc>
class __LDG< _Tp, _Te, _Ctr, _Iterator, _CIterator, _Inserter, _NAlloc, _EAlloc >

This is the toplevel base class for all labelled directed graphs independent of allocators

Definition at line 598 of file vgtl_ldag.h.


Member Typedef Documentation

template<class _Tp, class _Te, class _Ctr, class _Iterator, class _CIterator, class _Inserter, class _NAlloc, class _EAlloc>
typedef _LDG_iterator<_Tp,const _Tp&,const _Tp*,container_type, children_iterator,children_const_iterator,_Te> __LDG< _Tp, _Te, _Ctr, _Iterator, _CIterator, _Inserter, _NAlloc, _EAlloc >::const_iterator

the const iterator

Definition at line 651 of file vgtl_ldag.h.

template<class _Tp, class _Te, class _Ctr, class _Iterator, class _CIterator, class _Inserter, class _NAlloc, class _EAlloc>
typedef const value_type* __LDG< _Tp, _Te, _Ctr, _Iterator, _CIterator, _Inserter, _NAlloc, _EAlloc >::const_pointer

standard typedef

Definition at line 630 of file vgtl_ldag.h.

template<class _Tp, class _Te, class _Ctr, class _Iterator, class _CIterator, class _Inserter, class _NAlloc, class _EAlloc>
typedef const value_type& __LDG< _Tp, _Te, _Ctr, _Iterator, _CIterator, _Inserter, _NAlloc, _EAlloc >::const_reference

standard typedef

Definition at line 632 of file vgtl_ldag.h.

template<class _Tp, class _Te, class _Ctr, class _Iterator, class _CIterator, class _Inserter, class _NAlloc, class _EAlloc>
typedef std::reverse_iterator<const_iterator> __LDG< _Tp, _Te, _Ctr, _Iterator, _CIterator, _Inserter, _NAlloc, _EAlloc >::const_reverse_iterator

the const reverse iterator

Definition at line 655 of file vgtl_ldag.h.

template<class _Tp, class _Te, class _Ctr, class _Iterator, class _CIterator, class _Inserter, class _NAlloc, class _EAlloc>
typedef _LDG_walker<_Tp,const _Tp&,const _Tp*,container_type,children_iterator, children_const_iterator,_Te> __LDG< _Tp, _Te, _Ctr, _Iterator, _CIterator, _Inserter, _NAlloc, _EAlloc >::const_walker

template<class _Tp, class _Te, class _Ctr, class _Iterator, class _CIterator, class _Inserter, class _NAlloc, class _EAlloc>
typedef _Ctr __LDG< _Tp, _Te, _Ctr, _Iterator, _CIterator, _Inserter, _NAlloc, _EAlloc >::container_type

internal container used to store the edges

Reimplemented from _LDG_base< _Tp, _Ctr, _Iterator, _CIterator, _Te, _NAlloc, _EAlloc >.

Definition at line 601 of file vgtl_ldag.h.

template<class _Tp, class _Te, class _Ctr, class _Iterator, class _CIterator, class _Inserter, class _NAlloc, class _EAlloc>
typedef ptrdiff_t __LDG< _Tp, _Te, _Ctr, _Iterator, _CIterator, _Inserter, _NAlloc, _EAlloc >::difference_type

standard typedef

Definition at line 634 of file vgtl_ldag.h.

template<class _Tp, class _Te, class _Ctr, class _Iterator, class _CIterator, class _Inserter, class _NAlloc, class _EAlloc>
typedef _Base::edge_allocator_type __LDG< _Tp, _Te, _Ctr, _Iterator, _CIterator, _Inserter, _NAlloc, _EAlloc >::edge_allocator_type

edge allocator type

Reimplemented from _LDG_base< _Tp, _Ctr, _Iterator, _CIterator, _Te, _NAlloc, _EAlloc >.

Definition at line 641 of file vgtl_ldag.h.

template<class _Tp, class _Te, class _Ctr, class _Iterator, class _CIterator, class _Inserter, class _NAlloc, class _EAlloc>
typedef _Edge __LDG< _Tp, _Te, _Ctr, _Iterator, _CIterator, _Inserter, _NAlloc, _EAlloc >::edge_type

standard typedef

Definition at line 628 of file vgtl_ldag.h.

template<class _Tp, class _Te, class _Ctr, class _Iterator, class _CIterator, class _Inserter, class _NAlloc, class _EAlloc>
typedef std::pair<_RV_LDG, std::vector<enhanced_edge> > __LDG< _Tp, _Te, _Ctr, _Iterator, _CIterator, _Inserter, _NAlloc, _EAlloc >::erased_part [protected]

an edge of the graph (parent, child) an edge with additiona information about erased ground/sky edges an erased subgraph which is not yet a new directed graph

Reimplemented in ldgraph< _Tp, _SequenceCtr, _PtrAlloc, _Alloc >, ldag< _Tp, _SequenceCtr, _PtrAlloc, _Alloc >, and ldgraph< _Tp, _SequenceCtr, _PtrAlloc, _Alloc >.

Definition at line 683 of file vgtl_ldag.h.

template<class _Tp, class _Te, class _Ctr, class _Iterator, class _CIterator, class _Inserter, class _NAlloc, class _EAlloc>
typedef _CIterator __LDG< _Tp, _Te, _Ctr, _Iterator, _CIterator, _Inserter, _NAlloc, _EAlloc >::in_const_iterator

const iterator for accessing the out edges

Reimplemented from _LDG_base< _Tp, _Ctr, _Iterator, _CIterator, _Te, _NAlloc, _EAlloc >.

Definition at line 605 of file vgtl_ldag.h.

template<class _Tp, class _Te, class _Ctr, class _Iterator, class _CIterator, class _Inserter, class _NAlloc, class _EAlloc>
typedef _Iterator __LDG< _Tp, _Te, _Ctr, _Iterator, _CIterator, _Inserter, _NAlloc, _EAlloc >::in_iterator

iterator for accessing the in edges

Reimplemented from _LDG_base< _Tp, _Ctr, _Iterator, _CIterator, _Te, _NAlloc, _EAlloc >.

Definition at line 603 of file vgtl_ldag.h.

template<class _Tp, class _Te, class _Ctr, class _Iterator, class _CIterator, class _Inserter, class _NAlloc, class _EAlloc>
typedef _LDG_iterator<_Tp,_Tp&,_Tp*,container_type,children_iterator, children_const_iterator,_Te> __LDG< _Tp, _Te, _Ctr, _Iterator, _CIterator, _Inserter, _NAlloc, _EAlloc >::iterator

the iterator

Definition at line 648 of file vgtl_ldag.h.

template<class _Tp, class _Te, class _Ctr, class _Iterator, class _CIterator, class _Inserter, class _NAlloc, class _EAlloc>
typedef _Base::node_allocator_type __LDG< _Tp, _Te, _Ctr, _Iterator, _CIterator, _Inserter, _NAlloc, _EAlloc >::node_allocator_type

node allocator type

Reimplemented from _LDG_base< _Tp, _Ctr, _Iterator, _CIterator, _Te, _NAlloc, _EAlloc >.

Definition at line 637 of file vgtl_ldag.h.

template<class _Tp, class _Te, class _Ctr, class _Iterator, class _CIterator, class _Inserter, class _NAlloc, class _EAlloc>
typedef _Node __LDG< _Tp, _Te, _Ctr, _Iterator, _CIterator, _Inserter, _NAlloc, _EAlloc >::node_type

standard typedef

Definition at line 627 of file vgtl_ldag.h.

template<class _Tp, class _Te, class _Ctr, class _Iterator, class _CIterator, class _Inserter, class _NAlloc, class _EAlloc>
typedef _CIterator __LDG< _Tp, _Te, _Ctr, _Iterator, _CIterator, _Inserter, _NAlloc, _EAlloc >::out_const_iterator

const iterator for accessing the out edges

Reimplemented from _LDG_base< _Tp, _Ctr, _Iterator, _CIterator, _Te, _NAlloc, _EAlloc >.

Definition at line 604 of file vgtl_ldag.h.

template<class _Tp, class _Te, class _Ctr, class _Iterator, class _CIterator, class _Inserter, class _NAlloc, class _EAlloc>
typedef _Iterator __LDG< _Tp, _Te, _Ctr, _Iterator, _CIterator, _Inserter, _NAlloc, _EAlloc >::out_iterator

iterator for accessing the out edges

Reimplemented from _LDG_base< _Tp, _Ctr, _Iterator, _CIterator, _Te, _NAlloc, _EAlloc >.

Definition at line 602 of file vgtl_ldag.h.

template<class _Tp, class _Te, class _Ctr, class _Iterator, class _CIterator, class _Inserter, class _NAlloc, class _EAlloc>
typedef value_type* __LDG< _Tp, _Te, _Ctr, _Iterator, _CIterator, _Inserter, _NAlloc, _EAlloc >::pointer

standard typedef

Definition at line 629 of file vgtl_ldag.h.

template<class _Tp, class _Te, class _Ctr, class _Iterator, class _CIterator, class _Inserter, class _NAlloc, class _EAlloc>
typedef value_type& __LDG< _Tp, _Te, _Ctr, _Iterator, _CIterator, _Inserter, _NAlloc, _EAlloc >::reference

standard typedef

Definition at line 631 of file vgtl_ldag.h.

template<class _Tp, class _Te, class _Ctr, class _Iterator, class _CIterator, class _Inserter, class _NAlloc, class _EAlloc>
typedef std::reverse_iterator<iterator> __LDG< _Tp, _Te, _Ctr, _Iterator, _CIterator, _Inserter, _NAlloc, _EAlloc >::reverse_iterator

the reverse iterator

Definition at line 657 of file vgtl_ldag.h.

template<class _Tp, class _Te, class _Ctr, class _Iterator, class _CIterator, class _Inserter, class _NAlloc, class _EAlloc>
typedef size_t __LDG< _Tp, _Te, _Ctr, _Iterator, _CIterator, _Inserter, _NAlloc, _EAlloc >::size_type

standard typedef

Definition at line 633 of file vgtl_ldag.h.

template<class _Tp, class _Te, class _Ctr, class _Iterator, class _CIterator, class _Inserter, class _NAlloc, class _EAlloc>
typedef _Tp __LDG< _Tp, _Te, _Ctr, _Iterator, _CIterator, _Inserter, _NAlloc, _EAlloc >::value_type

standard typedef

Definition at line 626 of file vgtl_ldag.h.

template<class _Tp, class _Te, class _Ctr, class _Iterator, class _CIterator, class _Inserter, class _NAlloc, class _EAlloc>
typedef _LDG_walker<_Tp,_Tp&,_Tp*,container_type,children_iterator, children_const_iterator,_Te> __LDG< _Tp, _Te, _Ctr, _Iterator, _CIterator, _Inserter, _NAlloc, _EAlloc >::walker


Constructor & Destructor Documentation

template<class _Tp, class _Te, class _Ctr, class _Iterator, class _CIterator, class _Inserter, class _NAlloc, class _EAlloc>
__LDG< _Tp, _Te, _Ctr, _Iterator, _CIterator, _Inserter, _NAlloc, _EAlloc >::__LDG ( const allocator_type &  __a = allocator_type()  )  [inline, explicit]

standard constructor

Definition at line 781 of file vgtl_ldag.h.

template<class _Tp, class _Te, class _Ctr, class _Iterator, class _CIterator, class _Inserter, class _NAlloc, class _EAlloc>
__LDG< _Tp, _Te, _Ctr, _Iterator, _CIterator, _Inserter, _NAlloc, _EAlloc >::__LDG ( const _Self __x  )  [inline]

copy constructor

Definition at line 2108 of file vgtl_ldag.h.

template<class _Tp, class _Te, class _Ctr, class _Iterator, class _CIterator, class _Inserter, class _NAlloc, class _EAlloc>
__LDG< _Tp, _Te, _Ctr, _Iterator, _CIterator, _Inserter, _NAlloc, _EAlloc >::~__LDG (  )  [inline]

standard destructor

Definition at line 2125 of file vgtl_ldag.h.


Member Function Documentation

template<class _Tp, class _Te, class _Ctr, class _Iterator, class _CIterator, class _Inserter, class _NAlloc, class _EAlloc>
_Edge* __LDG< _Tp, _Te, _Ctr, _Iterator, _CIterator, _Inserter, _NAlloc, _EAlloc >::_C_create_edge ( _Node __s,
_Node __t 
) [inline, protected]

construct a new graph edge containing default data with source __s and target __t.

Definition at line 766 of file vgtl_ldag.h.

template<class _Tp, class _Te, class _Ctr, class _Iterator, class _CIterator, class _Inserter, class _NAlloc, class _EAlloc>
_Edge* __LDG< _Tp, _Te, _Ctr, _Iterator, _CIterator, _Inserter, _NAlloc, _EAlloc >::_C_create_edge ( const _Te &  __x,
_Node __s,
_Node __t 
) [inline, protected]

construct a new graph edge containing data __x with source __s and target __t.

Definition at line 751 of file vgtl_ldag.h.

template<class _Tp, class _Te, class _Ctr, class _Iterator, class _CIterator, class _Inserter, class _NAlloc, class _EAlloc>
_Edge* __LDG< _Tp, _Te, _Ctr, _Iterator, _CIterator, _Inserter, _NAlloc, _EAlloc >::_C_create_edge (  )  [inline, protected]

construct a new graph edge containing default data

Definition at line 738 of file vgtl_ldag.h.

template<class _Tp, class _Te, class _Ctr, class _Iterator, class _CIterator, class _Inserter, class _NAlloc, class _EAlloc>
_Edge* __LDG< _Tp, _Te, _Ctr, _Iterator, _CIterator, _Inserter, _NAlloc, _EAlloc >::_C_create_edge ( const _Te &  __x  )  [inline, protected]

construct a new graph edge containing data __x

Definition at line 726 of file vgtl_ldag.h.

template<class _Tp, class _Te, class _Ctr, class _Iterator, class _CIterator, class _Inserter, class _NAlloc, class _EAlloc>
_Node* __LDG< _Tp, _Te, _Ctr, _Iterator, _CIterator, _Inserter, _NAlloc, _EAlloc >::_C_create_node (  )  [inline, protected]

construct a new graph node containing default data

Definition at line 712 of file vgtl_ldag.h.

template<class _Tp, class _Te, class _Ctr, class _Iterator, class _CIterator, class _Inserter, class _NAlloc, class _EAlloc>
_Node* __LDG< _Tp, _Te, _Ctr, _Iterator, _CIterator, _Inserter, _NAlloc, _EAlloc >::_C_create_node ( const _Tp &  __x  )  [inline, protected]

construct a new graph node containing data __x

Definition at line 698 of file vgtl_ldag.h.

_LDG_edge<_Te ,_Node>* _LDG_base< _Tp , _Ctr , _Iterator , _CIterator , _Te , _NAlloc , _EAlloc >::_C_get_edge (  )  [inline, protected, inherited]

allocate a new edge

Definition at line 533 of file vgtl_ldagbase.h.

_LDG_node<_Tp ,_Ctr ,_Iterator >* _LDG_base< _Tp , _Ctr , _Iterator , _CIterator , _Te , _NAlloc , _EAlloc >::_C_get_node (  )  [inline, protected, inherited]

allocate a new node

Definition at line 526 of file vgtl_ldagbase.h.

void _LDG_base< _Tp , _Ctr , _Iterator , _CIterator , _Te , _NAlloc , _EAlloc >::_C_put_edge ( _LDG_edge< _Te , _Node > *  __p  )  [inline, protected, inherited]

deallocate a edge

Definition at line 536 of file vgtl_ldagbase.h.

void _LDG_base< _Tp , _Ctr , _Iterator , _CIterator , _Te , _NAlloc , _EAlloc >::_C_put_node ( _LDG_node< _Tp , _Ctr , _Iterator > *  __p  )  [inline, protected, inherited]

deallocate a node

Definition at line 529 of file vgtl_ldagbase.h.

void _LDG_base< _Tp , _Ctr , _Iterator , _CIterator , _Te , _NAlloc , _EAlloc >::add_all_in_edges ( _Output_Iterator  fi,
_LDG_node< _Tp , _Ctr , _Iterator > *  _child 
) [inline, protected, inherited]

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

void _LDG_base< _Tp, _Ctr, _Iterator, _CIterator, _Te, _NAlloc, _EAlloc >::add_all_out_edges ( _Output_Iterator  fi,
_LDG_node< _Tp , _Ctr , _Iterator > *  _parent 
) [inline, protected, inherited]

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

Definition at line 603 of file vgtl_ldagbase.h.

template<class _Tp, class _Te, class _Ctr, class _Iterator, class _CIterator, class _Inserter, class _NAlloc, class _EAlloc>
void __LDG< _Tp, _Te, _Ctr, _Iterator, _CIterator, _Inserter, _NAlloc, _EAlloc >::add_edge ( const walker __parent,
const walker __child,
const container_insert_arg &  __Itc,
const container_insert_arg &  __Itp 
) [inline]

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

Definition at line 1200 of file vgtl_ldag.h.

template<class _Tp, class _Te, class _Ctr, class _Iterator, class _CIterator, class _Inserter, class _NAlloc, class _EAlloc>
void __LDG< _Tp, _Te, _Ctr, _Iterator, _CIterator, _Inserter, _NAlloc, _EAlloc >::add_edge ( const edge &  __edge,
const container_insert_arg &  __Itc,
const container_insert_arg &  __Itp 
) [inline]

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

Definition at line 1191 of file vgtl_ldag.h.

template<class _Tp, class _Te, class _Ctr, class _Iterator, class _CIterator, class _Inserter, class _NAlloc, class _EAlloc>
void __LDG< _Tp, _Te, _Ctr, _Iterator, _CIterator, _Inserter, _NAlloc, _EAlloc >::clear (  )  [inline]

erase all the nodes except sky and ground

Reimplemented from _LDG_base< _Tp, _Ctr, _Iterator, _CIterator, _Te, _NAlloc, _EAlloc >.

Reimplemented in ldgraph< _Tp, _SequenceCtr, _PtrAlloc, _Alloc >, and ldgraph< _Tp, _SequenceCtr, _PtrAlloc, _Alloc >.

Definition at line 2068 of file vgtl_ldag.h.

template<class _Tp, class _Te, class _Ctr, class _Iterator, class _CIterator, class _Inserter, class _NAlloc, class _EAlloc>
void __LDG< _Tp, _Te, _Ctr, _Iterator, _CIterator, _Inserter, _NAlloc, _EAlloc >::clear_erased_part ( erased_part _ep  )  [inline]

clear all nodes in an erased part

Definition at line 1868 of file vgtl_ldag.h.

void _LDG_base< _Tp, _Ctr, _Iterator, _CIterator, _Te, _NAlloc, _EAlloc >::clear_graph ( _LDG_node< _Tp , _Ctr , _Iterator > *  _node  )  [inline, protected, inherited]

removes recursively all nodes and edges downward starting from _node.

Definition at line 572 of file vgtl_ldagbase.h.

void _LDG_base< _Tp , _Ctr , _Iterator , _CIterator , _Te , _NAlloc , _EAlloc >::clear_in_edges (  )  [inline, protected, inherited]

clear all in edges of the sky node

Definition at line 551 of file vgtl_ldagbase.h.

void _LDG_base< _Tp , _Ctr , _Iterator , _CIterator , _Te , _NAlloc , _EAlloc >::clear_out_edges (  )  [inline, protected, inherited]

clear all out edges of the ground node

Definition at line 548 of file vgtl_ldagbase.h.

template<class _Tp, class _Te, class _Ctr, class _Iterator, class _CIterator, class _Inserter, class _NAlloc, class _EAlloc>
bool __LDG< _Tp, _Te, _Ctr, _Iterator, _CIterator, _Inserter, _NAlloc, _EAlloc >::empty (  )  const [inline]

returns true if the DG is empty

Definition at line 888 of file vgtl_ldag.h.

template<class _Tp, class _Te, class _Ctr, class _Iterator, class _CIterator, class _Inserter, class _NAlloc, class _EAlloc>
void __LDG< _Tp, _Te, _Ctr, _Iterator, _CIterator, _Inserter, _NAlloc, _EAlloc >::erase ( const walker __position  )  [inline]

erase a node from the DG except the sky and ground

Definition at line 1518 of file vgtl_ldag.h.

template<class _Tp, class _Te, class _Ctr, class _Iterator, class _CIterator, class _Inserter, class _NAlloc, class _EAlloc>
bool __LDG< _Tp, _Te, _Ctr, _Iterator, _CIterator, _Inserter, _NAlloc, _EAlloc >::erase_child ( const walker __position,
const children_iterator &  __It 
) [inline]

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

Definition at line 2020 of file vgtl_ldag.h.

template<class _Tp, class _Te, class _Ctr, class _Iterator, class _CIterator, class _Inserter, class _NAlloc, class _EAlloc>
template<template< class __Tp, class __AllocTp > class __SequenceCtr, class _Allocator >
erased_part __LDG< _Tp, _Te, _Ctr, _Iterator, _CIterator, _Inserter, _NAlloc, _EAlloc >::erase_maximal_pregraph ( const __SequenceCtr< walker, _Allocator > &  __positions  )  [inline]

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 1984 of file vgtl_ldag.h.

template<class _Tp, class _Te, class _Ctr, class _Iterator, class _CIterator, class _Inserter, class _NAlloc, class _EAlloc>
erased_part __LDG< _Tp, _Te, _Ctr, _Iterator, _CIterator, _Inserter, _NAlloc, _EAlloc >::erase_maximal_pregraph ( const walker __position  )  [inline]

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 1950 of file vgtl_ldag.h.

template<class _Tp, class _Te, class _Ctr, class _Iterator, class _CIterator, class _Inserter, class _NAlloc, class _EAlloc>
template<template< class __Tp, class __AllocTp > class __SequenceCtr, class _Allocator >
erased_part __LDG< _Tp, _Te, _Ctr, _Iterator, _CIterator, _Inserter, _NAlloc, _EAlloc >::erase_maximal_subgraph ( const __SequenceCtr< walker, _Allocator > &  __positions  )  [inline]

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 1913 of file vgtl_ldag.h.

template<class _Tp, class _Te, class _Ctr, class _Iterator, class _CIterator, class _Inserter, class _NAlloc, class _EAlloc>
erased_part __LDG< _Tp, _Te, _Ctr, _Iterator, _CIterator, _Inserter, _NAlloc, _EAlloc >::erase_maximal_subgraph ( const walker __position  )  [inline]

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 1879 of file vgtl_ldag.h.

template<class _Tp, class _Te, class _Ctr, class _Iterator, class _CIterator, class _Inserter, class _NAlloc, class _EAlloc>
template<template< class __Tp, class __AllocTp > class __SequenceCtr, class _Allocator >
erased_part __LDG< _Tp, _Te, _Ctr, _Iterator, _CIterator, _Inserter, _NAlloc, _EAlloc >::erase_minimal_pregraph ( const __SequenceCtr< walker, _Allocator > &  __positions  )  [inline]

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 2004 of file vgtl_ldag.h.

template<class _Tp, class _Te, class _Ctr, class _Iterator, class _CIterator, class _Inserter, class _NAlloc, class _EAlloc>
erased_part __LDG< _Tp, _Te, _Ctr, _Iterator, _CIterator, _Inserter, _NAlloc, _EAlloc >::erase_minimal_pregraph ( const walker __position  )  [inline]

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 1966 of file vgtl_ldag.h.

template<class _Tp, class _Te, class _Ctr, class _Iterator, class _CIterator, class _Inserter, class _NAlloc, class _EAlloc>
template<template< class __Tp, class __AllocTp > class __SequenceCtr, class _Allocator >
erased_part __LDG< _Tp, _Te, _Ctr, _Iterator, _CIterator, _Inserter, _NAlloc, _EAlloc >::erase_minimal_subgraph ( const __SequenceCtr< walker, _Allocator > &  __positions  )  [inline]

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 1933 of file vgtl_ldag.h.

template<class _Tp, class _Te, class _Ctr, class _Iterator, class _CIterator, class _Inserter, class _NAlloc, class _EAlloc>
erased_part __LDG< _Tp, _Te, _Ctr, _Iterator, _CIterator, _Inserter, _NAlloc, _EAlloc >::erase_minimal_subgraph ( const walker __position  )  [inline]

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 1895 of file vgtl_ldag.h.

template<class _Tp, class _Te, class _Ctr, class _Iterator, class _CIterator, class _Inserter, class _NAlloc, class _EAlloc>
bool __LDG< _Tp, _Te, _Ctr, _Iterator, _CIterator, _Inserter, _NAlloc, _EAlloc >::erase_parent ( const walker __position,
const parents_iterator &  __It 
) [inline]

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

Definition at line 2046 of file vgtl_ldag.h.

template<class _Tp, class _Te, class _Ctr, class _Iterator, class _CIterator, class _Inserter, class _NAlloc, class _EAlloc>
edge_allocator_type __LDG< _Tp, _Te, _Ctr, _Iterator, _CIterator, _Inserter, _NAlloc, _EAlloc >::get_edge_allocator (  )  const [inline]

construct an edge allocator object

Reimplemented from _LDG_base< _Tp, _Ctr, _Iterator, _CIterator, _Te, _NAlloc, _EAlloc >.

Definition at line 643 of file vgtl_ldag.h.

template<class _Tp, class _Te, class _Ctr, class _Iterator, class _CIterator, class _Inserter, class _NAlloc, class _EAlloc>
node_allocator_type __LDG< _Tp, _Te, _Ctr, _Iterator, _CIterator, _Inserter, _NAlloc, _EAlloc >::get_node_allocator (  )  const [inline]

construct a node allocator object

Reimplemented from _LDG_base< _Tp, _Ctr, _Iterator, _CIterator, _Te, _NAlloc, _EAlloc >.

Definition at line 639 of file vgtl_ldag.h.

template<class _Tp, class _Te, class _Ctr, class _Iterator, class _CIterator, class _Inserter, class _NAlloc, class _EAlloc>
const_walker __LDG< _Tp, _Te, _Ctr, _Iterator, _CIterator, _Inserter, _NAlloc, _EAlloc >::ground (  )  const [inline]

return a const walker to the virtual ground node.

Definition at line 794 of file vgtl_ldag.h.

template<class _Tp, class _Te, class _Ctr, class _Iterator, class _CIterator, class _Inserter, class _NAlloc, class _EAlloc>
walker __LDG< _Tp, _Te, _Ctr, _Iterator, _CIterator, _Inserter, _NAlloc, _EAlloc >::ground (  )  [inline]

return a walker to the virtual ground node.

Definition at line 784 of file vgtl_ldag.h.

template<class _Tp, class _Te, class _Ctr, class _Iterator, class _CIterator, class _Inserter, class _NAlloc, class _EAlloc>
template<template< class __Tp, class __AllocTp > class __SequenceCtr, class _Allocator >
walker __LDG< _Tp, _Te, _Ctr, _Iterator, _CIterator, _Inserter, _NAlloc, _EAlloc >::insert_in_graph ( const __SequenceCtr< walker, _Allocator > &  __parents,
const walker __child,
const container_insert_arg &  __cref 
) [inline]

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

Definition at line 1127 of file vgtl_ldag.h.

template<class _Tp, class _Te, class _Ctr, class _Iterator, class _CIterator, class _Inserter, class _NAlloc, class _EAlloc>
template<template< class __Tp, class __AllocTp > class __SequenceCtr, class _Allocator >
walker __LDG< _Tp, _Te, _Ctr, _Iterator, _CIterator, _Inserter, _NAlloc, _EAlloc >::insert_in_graph ( const _Tp &  __x,
const __SequenceCtr< walker, _Allocator > &  __parents,
const walker __child,
const container_insert_arg &  __cref 
) [inline]

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

Definition at line 1112 of file vgtl_ldag.h.

template<class _Tp, class _Te, class _Ctr, class _Iterator, class _CIterator, class _Inserter, class _NAlloc, class _EAlloc>
template<template< class __Tp, class __AllocTp > class __SequenceCtr, class _Allocator >
walker __LDG< _Tp, _Te, _Ctr, _Iterator, _CIterator, _Inserter, _NAlloc, _EAlloc >::insert_in_graph ( const walker __parent,
const container_insert_arg &  __pref,
const __SequenceCtr< walker, _Allocator > &  __children 
) [inline]

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

Definition at line 1073 of file vgtl_ldag.h.

template<class _Tp, class _Te, class _Ctr, class _Iterator, class _CIterator, class _Inserter, class _NAlloc, class _EAlloc>
template<template< class __Tp, class __AllocTp > class __SequenceCtr, class _Allocator >
walker __LDG< _Tp, _Te, _Ctr, _Iterator, _CIterator, _Inserter, _NAlloc, _EAlloc >::insert_in_graph ( const _Tp &  __x,
const walker __parent,
const container_insert_arg &  __pref,
const __SequenceCtr< walker, _Allocator > &  __children 
) [inline]

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

Definition at line 1059 of file vgtl_ldag.h.

template<class _Tp, class _Te, class _Ctr, class _Iterator, class _CIterator, class _Inserter, class _NAlloc, class _EAlloc>
template<template< class __Tp, class __AllocTp > class __SequenceCtr1, template< class __Tp, class __AllocTp > class __SequenceCtr2, class _Allocator1 , class _Allocator2 >
walker __LDG< _Tp, _Te, _Ctr, _Iterator, _CIterator, _Inserter, _NAlloc, _EAlloc >::insert_in_graph ( const __SequenceCtr1< walker, _Allocator1 > &  __parents,
const __SequenceCtr2< walker, _Allocator2 > &  __children 
) [inline]

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

Definition at line 1021 of file vgtl_ldag.h.

template<class _Tp, class _Te, class _Ctr, class _Iterator, class _CIterator, class _Inserter, class _NAlloc, class _EAlloc>
template<template< class __Tp, class __AllocTp > class __SequenceCtr1, template< class __Tp, class __AllocTp > class __SequenceCtr2, class _Allocator1 , class _Allocator2 >
walker __LDG< _Tp, _Te, _Ctr, _Iterator, _CIterator, _Inserter, _NAlloc, _EAlloc >::insert_in_graph ( const _Tp &  __x,
const __SequenceCtr1< walker, _Allocator1 > &  __parents,
const __SequenceCtr2< walker, _Allocator2 > &  __children 
) [inline]

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

Definition at line 1006 of file vgtl_ldag.h.

template<class _Tp, class _Te, class _Ctr, class _Iterator, class _CIterator, class _Inserter, class _NAlloc, class _EAlloc>
walker __LDG< _Tp, _Te, _Ctr, _Iterator, _CIterator, _Inserter, _NAlloc, _EAlloc >::insert_in_graph ( const walker __parent,
const walker __child,
const container_insert_arg &  __Itc,
const container_insert_arg &  __Itp 
) [inline]

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 942 of file vgtl_ldag.h.

template<class _Tp, class _Te, class _Ctr, class _Iterator, class _CIterator, class _Inserter, class _NAlloc, class _EAlloc>
walker __LDG< _Tp, _Te, _Ctr, _Iterator, _CIterator, _Inserter, _NAlloc, _EAlloc >::insert_in_graph ( const _Tp &  __x,
const walker __parent,
const walker __child,
const container_insert_arg &  __Itc,
const container_insert_arg &  __Itp 
) [inline]

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 928 of file vgtl_ldag.h.

template<class _Tp, class _Te, class _Ctr, class _Iterator, class _CIterator, class _Inserter, class _NAlloc, class _EAlloc>
walker __LDG< _Tp, _Te, _Ctr, _Iterator, _CIterator, _Inserter, _NAlloc, _EAlloc >::insert_node ( const walker __position,
const container_insert_arg &  __It 
) [inline]

insert a new node with default data as child of __position

Definition at line 1399 of file vgtl_ldag.h.

template<class _Tp, class _Te, class _Ctr, class _Iterator, class _CIterator, class _Inserter, class _NAlloc, class _EAlloc>
walker __LDG< _Tp, _Te, _Ctr, _Iterator, _CIterator, _Inserter, _NAlloc, _EAlloc >::insert_node ( const _Tp &  __x,
const walker __position,
const container_insert_arg &  __It 
) [inline]

insert a new node with data __x as child of __position

Definition at line 1393 of file vgtl_ldag.h.

template<class _Tp, class _Te, class _Ctr, class _Iterator, class _CIterator, class _Inserter, class _NAlloc, class _EAlloc>
walker __LDG< _Tp, _Te, _Ctr, _Iterator, _CIterator, _Inserter, _NAlloc, _EAlloc >::insert_node ( _Node _node,
const walker __position,
const container_insert_arg &  __It 
) [inline]

insert one node as child of __position

Definition at line 1379 of file vgtl_ldag.h.

template<class _Tp, class _Te, class _Ctr, class _Iterator, class _CIterator, class _Inserter, class _NAlloc, class _EAlloc>
void __LDG< _Tp, _Te, _Ctr, _Iterator, _CIterator, _Inserter, _NAlloc, _EAlloc >::insert_node_before ( const walker __position,
const container_insert_arg &  __It 
) [inline]

insert a new node with default data as parent of __position

Definition at line 1423 of file vgtl_ldag.h.

template<class _Tp, class _Te, class _Ctr, class _Iterator, class _CIterator, class _Inserter, class _NAlloc, class _EAlloc>
void __LDG< _Tp, _Te, _Ctr, _Iterator, _CIterator, _Inserter, _NAlloc, _EAlloc >::insert_node_before ( const _Tp &  __x,
const walker __position,
const container_insert_arg &  __It 
) [inline]

insert a new node with data __x as parent of __position

Definition at line 1418 of file vgtl_ldag.h.

template<class _Tp, class _Te, class _Ctr, class _Iterator, class _CIterator, class _Inserter, class _NAlloc, class _EAlloc>
walker __LDG< _Tp, _Te, _Ctr, _Iterator, _CIterator, _Inserter, _NAlloc, _EAlloc >::insert_node_before ( _Node _node,
const walker __position,
const container_insert_arg &  __It 
) [inline]

insert a node as parent of __position

Definition at line 1404 of file vgtl_ldag.h.

template<class _Tp, class _Te, class _Ctr, class _Iterator, class _CIterator, class _Inserter, class _NAlloc, class _EAlloc>
template<template< class __Tp, class __AllocTp > class __SequenceCtr, class _Allocator >
walker __LDG< _Tp, _Te, _Ctr, _Iterator, _CIterator, _Inserter, _NAlloc, _EAlloc >::insert_node_in_graph ( _Node __node,
const __SequenceCtr< walker, _Allocator > &  __parents,
const walker __child,
const container_insert_arg &  __cref 
) [inline]

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

Definition at line 1087 of file vgtl_ldag.h.

template<class _Tp, class _Te, class _Ctr, class _Iterator, class _CIterator, class _Inserter, class _NAlloc, class _EAlloc>
template<template< class __Tp, class __AllocTp > class __SequenceCtr, class _Allocator >
walker __LDG< _Tp, _Te, _Ctr, _Iterator, _CIterator, _Inserter, _NAlloc, _EAlloc >::insert_node_in_graph ( _Node __node,
const walker __parent,
const container_insert_arg &  __pref,
const __SequenceCtr< walker, _Allocator > &  __children 
) [inline]

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

Definition at line 1034 of file vgtl_ldag.h.

template<class _Tp, class _Te, class _Ctr, class _Iterator, class _CIterator, class _Inserter, class _NAlloc, class _EAlloc>
template<template< class __Tp, class __AllocTp > class __SequenceCtr1, template< class __Tp, class __AllocTp > class __SequenceCtr2, class _Allocator1 , class _Allocator2 >
walker __LDG< _Tp, _Te, _Ctr, _Iterator, _CIterator, _Inserter, _NAlloc, _EAlloc >::insert_node_in_graph ( _Node __node,
const __SequenceCtr1< walker, _Allocator1 > &  __parents,
const __SequenceCtr2< walker, _Allocator2 > &  __children 
) [inline]

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

Definition at line 975 of file vgtl_ldag.h.

template<class _Tp, class _Te, class _Ctr, class _Iterator, class _CIterator, class _Inserter, class _NAlloc, class _EAlloc>
walker __LDG< _Tp, _Te, _Ctr, _Iterator, _CIterator, _Inserter, _NAlloc, _EAlloc >::insert_node_in_graph ( _Node __n,
const walker __parent,
const walker __child,
const container_insert_arg &  __Itc,
const container_insert_arg &  __Itp 
) [inline]

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

Definition at line 912 of file vgtl_ldag.h.

template<class _Tp, class _Te, class _Ctr, class _Iterator, class _CIterator, class _Inserter, class _NAlloc, class _EAlloc>
template<template< class __Tp, class __AllocTp > class __SequenceCtr1, template< class __Tp, class __AllocTp > class __SequenceCtr2, class _Allocator1 , class _Allocator2 >
void __LDG< _Tp, _Te, _Ctr, _Iterator, _CIterator, _Inserter, _NAlloc, _EAlloc >::insert_subgraph ( _Self __subgraph,
const __SequenceCtr1< walker, _Allocator1 > &  __parents,
const __SequenceCtr2< walker, _Allocator2 > &  __children 
) [inline]

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

Definition at line 1141 of file vgtl_ldag.h.

template<class _Tp, class _Te, class _Ctr, class _Iterator, class _CIterator, class _Inserter, class _NAlloc, class _EAlloc>
void __LDG< _Tp, _Te, _Ctr, _Iterator, _CIterator, _Inserter, _NAlloc, _EAlloc >::insert_subgraph ( _Self __subgraph,
const walker __parent,
const walker __child,
const container_insert_arg &  __Itc,
const container_insert_arg &  __Itp 
) [inline]

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

Definition at line 953 of file vgtl_ldag.h.

template<class _Tp, class _Te, class _Ctr, class _Iterator, class _CIterator, class _Inserter, class _NAlloc, class _EAlloc>
in_iterator __LDG< _Tp, _Te, _Ctr, _Iterator, _CIterator, _Inserter, _NAlloc, _EAlloc >::leaf_begin (  )  [inline]

return the first local sink of the directed graph

Definition at line 846 of file vgtl_ldag.h.

template<class _Tp, class _Te, class _Ctr, class _Iterator, class _CIterator, class _Inserter, class _NAlloc, class _EAlloc>
in_iterator __LDG< _Tp, _Te, _Ctr, _Iterator, _CIterator, _Inserter, _NAlloc, _EAlloc >::leaf_begin (  )  [inline]

return the first local sink of the directed graph

Definition at line 833 of file vgtl_ldag.h.

template<class _Tp, class _Te, class _Ctr, class _Iterator, class _CIterator, class _Inserter, class _NAlloc, class _EAlloc>
in_iterator __LDG< _Tp, _Te, _Ctr, _Iterator, _CIterator, _Inserter, _NAlloc, _EAlloc >::leaf_end (  )  [inline]

return beyond the last local sink of the directed graph

Definition at line 852 of file vgtl_ldag.h.

template<class _Tp, class _Te, class _Ctr, class _Iterator, class _CIterator, class _Inserter, class _NAlloc, class _EAlloc>
in_iterator __LDG< _Tp, _Te, _Ctr, _Iterator, _CIterator, _Inserter, _NAlloc, _EAlloc >::leaf_end (  )  [inline]

return beyond the last local sink of the directed graph

Definition at line 839 of file vgtl_ldag.h.

template<class _Tp, class _Te, class _Ctr, class _Iterator, class _CIterator, class _Inserter, class _NAlloc, class _EAlloc>
size_type __LDG< _Tp, _Te, _Ctr, _Iterator, _CIterator, _Inserter, _NAlloc, _EAlloc >::max_size (  )  const [inline]

the maximum size of a DG is virtually unlimited

Definition at line 899 of file vgtl_ldag.h.

template<class _Tp, class _Te, class _Ctr, class _Iterator, class _CIterator, class _Inserter, class _NAlloc, class _EAlloc>
void __LDG< _Tp, _Te, _Ctr, _Iterator, _CIterator, _Inserter, _NAlloc, _EAlloc >::merge ( const walker __position,
const walker __second,
bool  merge_parent_edges = true,
bool  merge_child_edges = true 
) [inline]

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

Definition at line 1429 of file vgtl_ldag.h.

template<class _Tp, class _Te, class _Ctr, class _Iterator, class _CIterator, class _Inserter, class _NAlloc, class _EAlloc>
_Self& __LDG< _Tp, _Te, _Ctr, _Iterator, _CIterator, _Inserter, _NAlloc, _EAlloc >::operator= ( const erased_part __ep  )  [inline]

assignment operator from an erased part

Reimplemented in ldgraph< _Tp, _SequenceCtr, _PtrAlloc, _Alloc >.

Definition at line 2139 of file vgtl_ldag.h.

template<class _Tp, class _Te, class _Ctr, class _Iterator, class _CIterator, class _Inserter, class _NAlloc, class _EAlloc>
_Self& __LDG< _Tp, _Te, _Ctr, _Iterator, _CIterator, _Inserter, _NAlloc, _EAlloc >::operator= ( const _RV_LDG &  __rl  )  [inline]

assignment operator from a part of an erased part

Reimplemented in ldgraph< _Tp, _SequenceCtr, _PtrAlloc, _Alloc >.

Definition at line 2131 of file vgtl_ldag.h.

template<class _Tp, class _Te, class _Ctr, class _Iterator, class _CIterator, class _Inserter, class _NAlloc, class _EAlloc>
_Self& __LDG< _Tp, _Te, _Ctr, _Iterator, _CIterator, _Inserter, _NAlloc, _EAlloc >::operator= ( const _Self __x  ) 

standard assignment operator

template<class _Tp, class _Te, class _Ctr, class _Iterator, class _CIterator, class _Inserter, class _NAlloc, class _EAlloc>
void __LDG< _Tp, _Te, _Ctr, _Iterator, _CIterator, _Inserter, _NAlloc, _EAlloc >::partial_erase_to_parent ( const walker __position,
const walker __parent,
unsigned int  idx 
) [inline]

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 1578 of file vgtl_ldag.h.

template<class _Tp, class _Te, class _Ctr, class _Iterator, class _CIterator, class _Inserter, class _NAlloc, class _EAlloc>
void __LDG< _Tp, _Te, _Ctr, _Iterator, _CIterator, _Inserter, _NAlloc, _EAlloc >::remove_edge ( const walker __parent,
const walker __child 
) [inline]

just remove one edge between __parent and __child

Definition at line 1332 of file vgtl_ldag.h.

template<class _Tp, class _Te, class _Ctr, class _Iterator, class _CIterator, class _Inserter, class _NAlloc, class _EAlloc>
void __LDG< _Tp, _Te, _Ctr, _Iterator, _CIterator, _Inserter, _NAlloc, _EAlloc >::remove_edge ( const edge &  __edge  )  [inline]

remove an edge with a particular parent and child

Definition at line 1315 of file vgtl_ldag.h.

template<class _Tp, class _Te, class _Ctr, class _Iterator, class _CIterator, class _Inserter, class _NAlloc, class _EAlloc>
void __LDG< _Tp, _Te, _Ctr, _Iterator, _CIterator, _Inserter, _NAlloc, _EAlloc >::remove_edge_and_deattach ( const walker __parent,
const walker __child 
) [inline]

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

Definition at line 1319 of file vgtl_ldag.h.

template<class _Tp, class _Te, class _Ctr, class _Iterator, class _CIterator, class _Inserter, class _NAlloc, class _EAlloc>
void __LDG< _Tp, _Te, _Ctr, _Iterator, _CIterator, _Inserter, _NAlloc, _EAlloc >::replace_edge_to_child ( const walker __parent,
const walker __child_old,
const walker __child_new 
) [inline]

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

Definition at line 1243 of file vgtl_ldag.h.

template<class _Tp, class _Te, class _Ctr, class _Iterator, class _CIterator, class _Inserter, class _NAlloc, class _EAlloc>
void __LDG< _Tp, _Te, _Ctr, _Iterator, _CIterator, _Inserter, _NAlloc, _EAlloc >::replace_edge_to_parent ( const walker __parent_old,
const walker __parent_new,
const walker __child 
) [inline]

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

Definition at line 1281 of file vgtl_ldag.h.

template<class _Tp, class _Te, class _Ctr, class _Iterator, class _CIterator, class _Inserter, class _NAlloc, class _EAlloc>
out_iterator __LDG< _Tp, _Te, _Ctr, _Iterator, _CIterator, _Inserter, _NAlloc, _EAlloc >::root_begin (  )  [inline]

return the first local source of the directed graph

Definition at line 820 of file vgtl_ldag.h.

template<class _Tp, class _Te, class _Ctr, class _Iterator, class _CIterator, class _Inserter, class _NAlloc, class _EAlloc>
out_iterator __LDG< _Tp, _Te, _Ctr, _Iterator, _CIterator, _Inserter, _NAlloc, _EAlloc >::root_begin (  )  [inline]

return the first local source of the directed graph

Definition at line 807 of file vgtl_ldag.h.

template<class _Tp, class _Te, class _Ctr, class _Iterator, class _CIterator, class _Inserter, class _NAlloc, class _EAlloc>
out_iterator __LDG< _Tp, _Te, _Ctr, _Iterator, _CIterator, _Inserter, _NAlloc, _EAlloc >::root_end (  )  [inline]

return beyond the last local source of the directed graph

Definition at line 826 of file vgtl_ldag.h.

template<class _Tp, class _Te, class _Ctr, class _Iterator, class _CIterator, class _Inserter, class _NAlloc, class _EAlloc>
out_iterator __LDG< _Tp, _Te, _Ctr, _Iterator, _CIterator, _Inserter, _NAlloc, _EAlloc >::root_end (  )  [inline]

return beyond the last local source of the directed graph

Definition at line 813 of file vgtl_ldag.h.

template<class _Tp, class _Te, class _Ctr, class _Iterator, class _CIterator, class _Inserter, class _NAlloc, class _EAlloc>
in_const_iterator __LDG< _Tp, _Te, _Ctr, _Iterator, _CIterator, _Inserter, _NAlloc, _EAlloc >::sink_begin (  )  const [inline]

return the first local sink of the directed graph

Definition at line 844 of file vgtl_ldag.h.

template<class _Tp, class _Te, class _Ctr, class _Iterator, class _CIterator, class _Inserter, class _NAlloc, class _EAlloc>
in_iterator __LDG< _Tp, _Te, _Ctr, _Iterator, _CIterator, _Inserter, _NAlloc, _EAlloc >::sink_begin (  )  [inline]

return the first local sink of the directed graph

Definition at line 831 of file vgtl_ldag.h.

template<class _Tp, class _Te, class _Ctr, class _Iterator, class _CIterator, class _Inserter, class _NAlloc, class _EAlloc>
in_const_iterator __LDG< _Tp, _Te, _Ctr, _Iterator, _CIterator, _Inserter, _NAlloc, _EAlloc >::sink_end (  )  const [inline]

return beyond the last local sink of the directed graph

Definition at line 850 of file vgtl_ldag.h.

template<class _Tp, class _Te, class _Ctr, class _Iterator, class _CIterator, class _Inserter, class _NAlloc, class _EAlloc>
in_iterator __LDG< _Tp, _Te, _Ctr, _Iterator, _CIterator, _Inserter, _NAlloc, _EAlloc >::sink_end (  )  [inline]

return beyond the last local sink of the directed graph

Definition at line 837 of file vgtl_ldag.h.

template<class _Tp, class _Te, class _Ctr, class _Iterator, class _CIterator, class _Inserter, class _NAlloc, class _EAlloc>
size_type __LDG< _Tp, _Te, _Ctr, _Iterator, _CIterator, _Inserter, _NAlloc, _EAlloc >::size (  )  const [inline]

returns the size of the DG (number of nodes)

Definition at line 892 of file vgtl_ldag.h.

template<class _Tp, class _Te, class _Ctr, class _Iterator, class _CIterator, class _Inserter, class _NAlloc, class _EAlloc>
const_walker __LDG< _Tp, _Te, _Ctr, _Iterator, _CIterator, _Inserter, _NAlloc, _EAlloc >::sky (  )  const [inline]

return a const walker to the virtual sky node.

Definition at line 799 of file vgtl_ldag.h.

template<class _Tp, class _Te, class _Ctr, class _Iterator, class _CIterator, class _Inserter, class _NAlloc, class _EAlloc>
walker __LDG< _Tp, _Te, _Ctr, _Iterator, _CIterator, _Inserter, _NAlloc, _EAlloc >::sky (  )  [inline]

return a walker to the virtual sky node.

Definition at line 789 of file vgtl_ldag.h.

template<class _Tp, class _Te, class _Ctr, class _Iterator, class _CIterator, class _Inserter, class _NAlloc, class _EAlloc>
template<class Compare >
void __LDG< _Tp, _Te, _Ctr, _Iterator, _CIterator, _Inserter, _NAlloc, _EAlloc >::sort_child_edges ( walker  __position,
Compare  comp 
) [inline]

sort all child edges according to comp

Definition at line 1368 of file vgtl_ldag.h.

template<class _Tp, class _Te, class _Ctr, class _Iterator, class _CIterator, class _Inserter, class _NAlloc, class _EAlloc>
template<class Compare >
void __LDG< _Tp, _Te, _Ctr, _Iterator, _CIterator, _Inserter, _NAlloc, _EAlloc >::sort_child_edges ( walker  __position,
children_iterator  first,
children_iterator  last,
Compare  comp 
) [inline]

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

Definition at line 1356 of file vgtl_ldag.h.

template<class _Tp, class _Te, class _Ctr, class _Iterator, class _CIterator, class _Inserter, class _NAlloc, class _EAlloc>
template<class Compare >
void __LDG< _Tp, _Te, _Ctr, _Iterator, _CIterator, _Inserter, _NAlloc, _EAlloc >::sort_parent_edges ( walker  __position,
Compare  comp 
) [inline]

sort all parent edges according to comp

Definition at line 1374 of file vgtl_ldag.h.

template<class _Tp, class _Te, class _Ctr, class _Iterator, class _CIterator, class _Inserter, class _NAlloc, class _EAlloc>
template<class Compare >
void __LDG< _Tp, _Te, _Ctr, _Iterator, _CIterator, _Inserter, _NAlloc, _EAlloc >::sort_parent_edges ( walker  __position,
parents_iterator  first,
parents_iterator  last,
Compare  comp 
) [inline]

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

Definition at line 1362 of file vgtl_ldag.h.

template<class _Tp, class _Te, class _Ctr, class _Iterator, class _CIterator, class _Inserter, class _NAlloc, class _EAlloc>
out_const_iterator __LDG< _Tp, _Te, _Ctr, _Iterator, _CIterator, _Inserter, _NAlloc, _EAlloc >::source_begin (  )  const [inline]

return the first local source of the directed graph

Definition at line 818 of file vgtl_ldag.h.

template<class _Tp, class _Te, class _Ctr, class _Iterator, class _CIterator, class _Inserter, class _NAlloc, class _EAlloc>
out_iterator __LDG< _Tp, _Te, _Ctr, _Iterator, _CIterator, _Inserter, _NAlloc, _EAlloc >::source_begin (  )  [inline]

return the first local source of the directed graph

Definition at line 805 of file vgtl_ldag.h.

template<class _Tp, class _Te, class _Ctr, class _Iterator, class _CIterator, class _Inserter, class _NAlloc, class _EAlloc>
out_const_iterator __LDG< _Tp, _Te, _Ctr, _Iterator, _CIterator, _Inserter, _NAlloc, _EAlloc >::source_end (  )  const [inline]

return beyond the last local source of the directed graph

Definition at line 824 of file vgtl_ldag.h.

template<class _Tp, class _Te, class _Ctr, class _Iterator, class _CIterator, class _Inserter, class _NAlloc, class _EAlloc>
out_iterator __LDG< _Tp, _Te, _Ctr, _Iterator, _CIterator, _Inserter, _NAlloc, _EAlloc >::source_end (  )  [inline]

return beyond the last local source of the directed graph

Definition at line 811 of file vgtl_ldag.h.

template<class _Tp, class _Te, class _Ctr, class _Iterator, class _CIterator, class _Inserter, class _NAlloc, class _EAlloc>
void __LDG< _Tp, _Te, _Ctr, _Iterator, _CIterator, _Inserter, _NAlloc, _EAlloc >::swap ( _Self __x  )  [inline]

swap two DGs

Definition at line 902 of file vgtl_ldag.h.


Member Data Documentation

_LDG_node<_Tp ,_Ctr ,_Iterator >* _LDG_base< _Tp , _Ctr , _Iterator , _CIterator , _Te , _NAlloc , _EAlloc >::_C_ground [protected, inherited]

the virtual ground node (below all roots)

Definition at line 541 of file vgtl_ldagbase.h.

int _LDG_base< _Tp , _Ctr , _Iterator , _CIterator , _Te , _NAlloc , _EAlloc >::_C_mark [protected, inherited]

an internal counter for setting marks during certain algorithms

Definition at line 545 of file vgtl_ldagbase.h.

_LDG_node<_Tp ,_Ctr ,_Iterator >* _LDG_base< _Tp , _Ctr , _Iterator , _CIterator , _Te , _NAlloc , _EAlloc >::_C_sky [protected, inherited]

the virtual sky node (above all leafs)

Definition at line 543 of file vgtl_ldagbase.h.


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

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