Main Page   Modules   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members  

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::erased_part erased_part
typedef _SequenceCtr< void *,
_PtrAlloc > 
container_type
typedef _Tp value_type
typedef _DG_iterator< _Tp,
_Tp &, _Tp *, container_type,
children_iterator
iterator
typedef _DG_iterator< _Tp,
const _Tp &, const _Tp *,
container_type, children_iterator
const_iterator
typedef std::reverse_iterator<
const_iterator
const_reverse_iterator
typedef std::reverse_iterator<
iterator
reverse_iterator
typedef std::pair< walker,
walker
edge
typedef std::pair< edge, bool > enhanced_edge

Public Methods

 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)
_Self & operator= (const _RV_DG &__rl)
_Self & operator= (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)
template<template< class __Tp, class __AllocTp > class __SequenceCtr1, template< class __Tp, class __AllocTp > class __SequenceCtr2, class _Allocator1, class _Allocator2> walker between (const __SequenceCtr1< walker, _Allocator1 > &__parents, const __SequenceCtr2< walker, _Allocator2 > &__children, const _Tp &__x)
template<template< class __Tp, class __AllocTp > class __SequenceCtr, class _Allocator> walker between (const walker &__parent, const children_iterator &__cit, const __SequenceCtr< walker, _Allocator > &__children, const _Tp &__x)
template<template< class __Tp, class __AllocTp > class __SequenceCtr, class _Allocator> 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)
template<template< class __Tp, class __AllocTp > class __SequenceCtr1, template< class __Tp, class __AllocTp > class __SequenceCtr2, class _Allocator1, class _Allocator2> void split (const __SequenceCtr1< walker, _Allocator1 > &__parents, const __SequenceCtr2< walker, _Allocator2 > &__children, const _Tp &__x)
template<template< class __Tp, class __AllocTp > class __SequenceCtr, class _Allocator> walker split (const walker &__parent, const children_iterator &__ch_it, const __SequenceCtr< walker, _Allocator > &__children, const _Tp &__x)
template<template< class __Tp, class __AllocTp > class __SequenceCtr, class _Allocator> 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)
template<template< class __Tp, class __AllocTp > class __SequenceCtr, class _Allocator> walker between_back (const walker &__parent, const __SequenceCtr< walker, _Allocator > &__children, const _Tp &__x)
template<template< class __Tp, class __AllocTp > class __SequenceCtr, class _Allocator> 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)
template<template< class __Tp, class __AllocTp > class __SequenceCtr, class _Allocator> walker split_back (const walker &__parent, const __SequenceCtr< walker, _Allocator > &__children, const _Tp &__x)
template<template< class __Tp, class __AllocTp > class __SequenceCtr, class _Allocator> 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)
template<template< class __Tp, class __AllocTp > class __SequenceCtr, class _Allocator> walker between_front (const walker &__parent, const __SequenceCtr< walker, _Allocator > &__children, const _Tp &__x)
template<template< class __Tp, class __AllocTp > class __SequenceCtr, class _Allocator> 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)
template<template< class __Tp, class __AllocTp > class __SequenceCtr, class _Allocator> walker split_front (const walker &__parent, const __SequenceCtr< walker, _Allocator > &__children, const _Tp &__x)
template<template< class __Tp, class __AllocTp > class __SequenceCtr, class _Allocator> 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_iterator root_end ()
parents_iterator leaf_begin ()
parents_iterator leaf_end ()
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 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)
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 Types

typedef _Base::allocator_type allocator_type

Protected Methods

_Node * _C_create_node (const _Tp &__x)
_Node * _C_create_node ()
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)

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

Friends

bool operator==__VGTL_NULL_TMPL_ARGS (const __DG &__x, const __DG &__y)

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 2448 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 2454 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 2466 of file vgtl_dag.h.

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

the const iterator

Definition at line 543 of file vgtl_dag.h.

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

the const reverse iterator

Definition at line 547 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 2464 of file vgtl_dag.h.

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

internal container used to store the children and parents

Reimplemented from _DG_base< _Tp, _SequenceCtr< void *, _PtrAlloc >, _SequenceCtr< void *, _PtrAlloc >::iterator, _Alloc >.

Definition at line 509 of file vgtl_dag.h.

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

an edge of the graph (parent, child)

Definition at line 567 of file vgtl_dag.h.

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

an edge with additiona information about erased ground/sky edges

Definition at line 569 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 2471 of file vgtl_dag.h.

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

the iterator

Definition at line 541 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 2468 of file vgtl_dag.h.

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

the reverse iterator

Definition at line 549 of file vgtl_dag.h.

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

standard typedef

Definition at line 525 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 2462 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 2475 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 2478 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 2484 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 2492 of file vgtl_dag.h.


Member Function Documentation

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

construct a new tree node containing default data

Definition at line 600 of file vgtl_dag.h.

_Node* __DG< _Tp, _SequenceCtr< void *, _PtrAlloc >, _SequenceCtr< void *, _PtrAlloc >::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 586 of file vgtl_dag.h.

_DG_node<_Tp,_SequenceCtr< void *, _PtrAlloc >,_SequenceCtr< void *, _PtrAlloc >::iterator>* _DG_alloc_base< _Tp, _SequenceCtr< void *, _PtrAlloc >, _SequenceCtr< void *, _PtrAlloc >::iterator, _Alloc, _IsStatic >::_C_get_node   [inline, protected, inherited]
 

allocates the memory of one node

Definition at line 194 of file vgtl_dagbase.h.

void _DG_alloc_base< _Tp, _SequenceCtr< void *, _PtrAlloc >, _SequenceCtr< void *, _PtrAlloc >::iterator, _Alloc, _IsStatic >::_C_put_node _DG_node< _Tp, _SequenceCtr< void *, _PtrAlloc >, _SequenceCtr< void *, _PtrAlloc >::iterator > *    __p [inline, protected, inherited]
 

de-allocates the memory of one node

Definition at line 197 of file vgtl_dagbase.h.

void _DG_base< _Tp, _SequenceCtr< void *, _PtrAlloc >, _SequenceCtr< void *, _PtrAlloc >::iterator, _Alloc >::add_all_children _Output_Iterator    fi,
_DG_node< _Tp, _SequenceCtr< void *, _PtrAlloc >, _SequenceCtr< void *, _PtrAlloc >::iterator > *    _parent
[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, _Alloc >::add_all_parents _Output_Iterator    fi,
_DG_node< _Tp, _SequenceCtr< void *, _PtrAlloc >, _SequenceCtr< void *, _PtrAlloc >::iterator > *    _child
[inherited]
 

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

void __DG< _Tp, _SequenceCtr< void *, _PtrAlloc >, _SequenceCtr< void *, _PtrAlloc >::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 980 of file vgtl_dag.h.

void __DG< _Tp, _SequenceCtr< void *, _PtrAlloc >, _SequenceCtr< void *, _PtrAlloc >::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 971 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)>
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 2186 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)>
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 2196 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)>
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 2206 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)>
template<template< class __Tp, class __AllocTp > class __SequenceCtr, class _Allocator>
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 2322 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)>
template<template< class __Tp, class __AllocTp > class __SequenceCtr, class _Allocator>
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 2222 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)>
template<template< class __Tp, class __AllocTp > class __SequenceCtr1, template< class __Tp, class __AllocTp > class __SequenceCtr2, class _Allocator1, class _Allocator2>
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 2076 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)>
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 1974 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)>
template<template< class __Tp, class __AllocTp > class __SequenceCtr, class _Allocator>
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 2376 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)>
template<template< class __Tp, class __AllocTp > class __SequenceCtr, class _Allocator>
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 2277 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)>
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 2009 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)>
template<template< class __Tp, class __AllocTp > class __SequenceCtr, class _Allocator>
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 2404 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)>
template<template< class __Tp, class __AllocTp > class __SequenceCtr, class _Allocator>
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 2307 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)>
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 2040 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 2515 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)>
void dgraph< _Tp, _SequenceCtr, _PtrAlloc, _Alloc >::clear   [inline, inherited]
 

empty the graph

Reimplemented from __DG< _Tp, _SequenceCtr< void *, _PtrAlloc >, _SequenceCtr< void *, _PtrAlloc >::iterator, _SequenceCtr< void *, _PtrAlloc >::iterator, _Alloc >.

Definition at line 1967 of file vgtl_dag.h.

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

clear all children of the ground node

Definition at line 314 of file vgtl_dagbase.h.

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

clear all nodes in an erased part

Definition at line 1582 of file vgtl_dag.h.

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

removes all the nodes of the graph except the sky and ground nodes

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

clear all parents of the sky node

Definition at line 317 of file vgtl_dagbase.h.

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

returns true if the DG is empty

Definition at line 668 of file vgtl_dag.h.

void __DG< _Tp, _SequenceCtr< void *, _PtrAlloc >, _SequenceCtr< void *, _PtrAlloc >::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 1297 of file vgtl_dag.h.

bool __DG< _Tp, _SequenceCtr< void *, _PtrAlloc >, _SequenceCtr< void *, _PtrAlloc >::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 1734 of file vgtl_dag.h.

erased_part __DG< _Tp, _SequenceCtr< void *, _PtrAlloc >, _SequenceCtr< void *, _PtrAlloc >::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 1698 of file vgtl_dag.h.

erased_part __DG< _Tp, _SequenceCtr< void *, _PtrAlloc >, _SequenceCtr< void *, _PtrAlloc >::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 1664 of file vgtl_dag.h.

erased_part __DG< _Tp, _SequenceCtr< void *, _PtrAlloc >, _SequenceCtr< void *, _PtrAlloc >::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 1627 of file vgtl_dag.h.

erased_part __DG< _Tp, _SequenceCtr< void *, _PtrAlloc >, _SequenceCtr< void *, _PtrAlloc >::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 1593 of file vgtl_dag.h.

erased_part __DG< _Tp, _SequenceCtr< void *, _PtrAlloc >, _SequenceCtr< void *, _PtrAlloc >::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 1718 of file vgtl_dag.h.

erased_part __DG< _Tp, _SequenceCtr< void *, _PtrAlloc >, _SequenceCtr< void *, _PtrAlloc >::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 1680 of file vgtl_dag.h.

erased_part __DG< _Tp, _SequenceCtr< void *, _PtrAlloc >, _SequenceCtr< void *, _PtrAlloc >::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 1647 of file vgtl_dag.h.

erased_part __DG< _Tp, _SequenceCtr< void *, _PtrAlloc >, _SequenceCtr< void *, _PtrAlloc >::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 1609 of file vgtl_dag.h.

bool __DG< _Tp, _SequenceCtr< void *, _PtrAlloc >, _SequenceCtr< void *, _PtrAlloc >::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 1760 of file vgtl_dag.h.

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

construct an allocator object

Reimplemented from _DG_alloc_base< _Tp, _SequenceCtr< void *, _PtrAlloc >, _SequenceCtr< void *, _PtrAlloc >::iterator, _Alloc, std::_Alloc_traits< _Tp, _Alloc >::_S_instanceless >.

Definition at line 537 of file vgtl_dag.h.

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

return a const walker to the virtual ground node.

Definition at line 628 of file vgtl_dag.h.

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

return a walker to the virtual ground node.

Definition at line 618 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)>
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 2145 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)>
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 2158 of file vgtl_dag.h.

walker __DG< _Tp, _SequenceCtr< void *, _PtrAlloc >, _SequenceCtr< void *, _PtrAlloc >::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 907 of file vgtl_dag.h.

walker __DG< _Tp, _SequenceCtr< void *, _PtrAlloc >, _SequenceCtr< void *, _PtrAlloc >::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 892 of file vgtl_dag.h.

walker __DG< _Tp, _SequenceCtr< void *, _PtrAlloc >, _SequenceCtr< void *, _PtrAlloc >::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 853 of file vgtl_dag.h.

walker __DG< _Tp, _SequenceCtr< void *, _PtrAlloc >, _SequenceCtr< void *, _PtrAlloc >::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 839 of file vgtl_dag.h.

walker __DG< _Tp, _SequenceCtr< void *, _PtrAlloc >, _SequenceCtr< void *, _PtrAlloc >::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 801 of file vgtl_dag.h.

walker __DG< _Tp, _SequenceCtr< void *, _PtrAlloc >, _SequenceCtr< void *, _PtrAlloc >::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 786 of file vgtl_dag.h.

walker __DG< _Tp, _SequenceCtr< void *, _PtrAlloc >, _SequenceCtr< void *, _PtrAlloc >::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 722 of file vgtl_dag.h.

walker __DG< _Tp, _SequenceCtr< void *, _PtrAlloc >, _SequenceCtr< void *, _PtrAlloc >::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 708 of file vgtl_dag.h.

walker __DG< _Tp, _SequenceCtr< void *, _PtrAlloc >, _SequenceCtr< void *, _PtrAlloc >::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 1178 of file vgtl_dag.h.

walker __DG< _Tp, _SequenceCtr< void *, _PtrAlloc >, _SequenceCtr< void *, _PtrAlloc >::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 1172 of file vgtl_dag.h.

walker __DG< _Tp, _SequenceCtr< void *, _PtrAlloc >, _SequenceCtr< void *, _PtrAlloc >::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 1158 of file vgtl_dag.h.

void __DG< _Tp, _SequenceCtr< void *, _PtrAlloc >, _SequenceCtr< void *, _PtrAlloc >::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 1202 of file vgtl_dag.h.

void __DG< _Tp, _SequenceCtr< void *, _PtrAlloc >, _SequenceCtr< void *, _PtrAlloc >::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 1197 of file vgtl_dag.h.

walker __DG< _Tp, _SequenceCtr< void *, _PtrAlloc >, _SequenceCtr< void *, _PtrAlloc >::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 1183 of file vgtl_dag.h.

walker __DG< _Tp, _SequenceCtr< void *, _PtrAlloc >, _SequenceCtr< void *, _PtrAlloc >::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 867 of file vgtl_dag.h.

walker __DG< _Tp, _SequenceCtr< void *, _PtrAlloc >, _SequenceCtr< void *, _PtrAlloc >::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 814 of file vgtl_dag.h.

walker __DG< _Tp, _SequenceCtr< void *, _PtrAlloc >, _SequenceCtr< void *, _PtrAlloc >::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 755 of file vgtl_dag.h.

walker __DG< _Tp, _SequenceCtr< void *, _PtrAlloc >, _SequenceCtr< void *, _PtrAlloc >::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 692 of file vgtl_dag.h.

void __DG< _Tp, _SequenceCtr< void *, _PtrAlloc >, _SequenceCtr< void *, _PtrAlloc >::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 921 of file vgtl_dag.h.

void __DG< _Tp, _SequenceCtr< void *, _PtrAlloc >, _SequenceCtr< void *, _PtrAlloc >::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 733 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)>
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 2134 of file vgtl_dag.h.

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

return the first leaf of the directed graph

Definition at line 645 of file vgtl_dag.h.

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

return beyond the last leaf of the directed graph

Definition at line 648 of file vgtl_dag.h.

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

the maximum size of a DG is virtually unlimited

Definition at line 679 of file vgtl_dag.h.

void __DG< _Tp, _SequenceCtr< void *, _PtrAlloc >, _SequenceCtr< void *, _PtrAlloc >::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 1208 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

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

Definition at line 2539 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

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

Definition at line 2531 of file vgtl_dag.h.

void __DG< _Tp, _SequenceCtr< void *, _PtrAlloc >, _SequenceCtr< void *, _PtrAlloc >::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 1111 of file vgtl_dag.h.

void __DG< _Tp, _SequenceCtr< void *, _PtrAlloc >, _SequenceCtr< void *, _PtrAlloc >::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 1094 of file vgtl_dag.h.

void __DG< _Tp, _SequenceCtr< void *, _PtrAlloc >, _SequenceCtr< void *, _PtrAlloc >::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 1098 of file vgtl_dag.h.

void __DG< _Tp, _SequenceCtr< void *, _PtrAlloc >, _SequenceCtr< void *, _PtrAlloc >::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 1023 of file vgtl_dag.h.

void __DG< _Tp, _SequenceCtr< void *, _PtrAlloc >, _SequenceCtr< void *, _PtrAlloc >::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 1060 of file vgtl_dag.h.

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

return the first root of the directed graph

Definition at line 638 of file vgtl_dag.h.

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

return beyond the last root of the directed graph

Definition at line 641 of file vgtl_dag.h.

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

returns the size of the DG (number of nodes)

Definition at line 672 of file vgtl_dag.h.

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

return a const walker to the virtual sky node.

Definition at line 633 of file vgtl_dag.h.

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

return a walker to the virtual sky node.

Definition at line 623 of file vgtl_dag.h.

void __DG< _Tp, _SequenceCtr< void *, _PtrAlloc >, _SequenceCtr< void *, _PtrAlloc >::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 1147 of file vgtl_dag.h.

void __DG< _Tp, _SequenceCtr< void *, _PtrAlloc >, _SequenceCtr< void *, _PtrAlloc >::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 1135 of file vgtl_dag.h.

void __DG< _Tp, _SequenceCtr< void *, _PtrAlloc >, _SequenceCtr< void *, _PtrAlloc >::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 1153 of file vgtl_dag.h.

void __DG< _Tp, _SequenceCtr< void *, _PtrAlloc >, _SequenceCtr< void *, _PtrAlloc >::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 1141 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)>
template<template< class __Tp, class __AllocTp > class __SequenceCtr, class _Allocator>
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 2335 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)>
template<template< class __Tp, class __AllocTp > class __SequenceCtr, class _Allocator>
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 2235 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)>
template<template< class __Tp, class __AllocTp > class __SequenceCtr1, template< class __Tp, class __AllocTp > class __SequenceCtr2, class _Allocator1, class _Allocator2>
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 2108 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)>
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 1987 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)>
template<template< class __Tp, class __AllocTp > class __SequenceCtr, class _Allocator>
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 2362 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)>
template<template< class __Tp, class __AllocTp > class __SequenceCtr, class _Allocator>
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 2262 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)>
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 2022 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)>
template<template< class __Tp, class __AllocTp > class __SequenceCtr, class _Allocator>
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 2390 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)>
template<template< class __Tp, class __AllocTp > class __SequenceCtr, class _Allocator>
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 2292 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)>
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 2053 of file vgtl_dag.h.

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

swap two DGs

Definition at line 682 of file vgtl_dag.h.


Friends And Related Function Documentation

bool operator==__VGTL_NULL_TMPL_ARGS const __DG< _Tp, _SequenceCtr< void *, _PtrAlloc >, _SequenceCtr< void *, _PtrAlloc >::iterator, _SequenceCtr< void *, _PtrAlloc >::iterator, _Alloc > &    __x,
const __DG< _Tp, _SequenceCtr< void *, _PtrAlloc >, _SequenceCtr< void *, _PtrAlloc >::iterator, _SequenceCtr< void *, _PtrAlloc >::iterator, _Alloc > &    __y
[friend, inherited]
 

standard comparison operator


Member Data Documentation

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

the virtual ground node (below all roots)

Definition at line 206 of file vgtl_dagbase.h.

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

internal counter for various algorithms

Definition at line 210 of file vgtl_dagbase.h.

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

the virtual sky node (above all leaves)

Definition at line 208 of file vgtl_dagbase.h.


The documentation for this class was generated from the following file:
Generated on Tue Nov 4 01:41:46 2003 for Vienna Graph Template Library by doxygen1.2.18