complementarySubgraph Class Reference

(private) Klasse More...

#include <complement.h>

Inheritance diagram for complementarySubgraph:

abstractSubgraph managedObject goblinRootObject

Public Member Functions

unsigned long Size () const throw ()
unsigned long Allocated () const throw ()
const abstractMixedGraphSourceGraph () const throw ()
const abstractSubgraphComplementarySubgraph () const throw ()
bool HasNode (TNode node) const throw (ERRange)
void AddArc (TArc a) throw (ERRejected)
TArc AddArc (TNode u, TNode v) throw (ERRange,ERRejected)
void AddNode (TNode u) throw (ERRange,ERRejected)
void OmitArc (TArc a) throw (ERRange,ERRejected)
void OmitArc (TNode u, TNode v) throw (ERRange,ERRejected)
void OmitNode (TNode u) throw (ERRange,ERRejected)
void OmitIsolatedNodes () throw ()
TArc Adjacency (TNode from, TNode to) throw (ERRange)
TNode N () const throw ()
TArc M () const throw ()
TNode StartNode (TArc) const throw (ERRange)
TNode EndNode (TArc) const throw (ERRange)
bool HasArc (TArc) const throw (ERRange)
TArc First (TNode) const throw (ERRange,ERRejected)
TArc Right (TArc, TNode) const throw (ERRange,ERRejected)

Protected Member Functions

 complementarySubgraph (const subgraph *G) throw ()
virtual ~complementarySubgraph () throw ()

Detailed Description

(private) Klasse

Dieses Klasse soll nicht direkt instanziiert werden. Sie wird von einem subgraph-Objekt verwendet, um den Graphen: Ursprungsgraph subgraph::getSourceGraph ohne Knoten des eigenen Graphen darzustellen. Dazu wird es der Klasse complementarySubgraph erlaubt, vollständig auf das zugehörige subgraph-Objekt (d.h. auch auf private Member) zu zugreifen.

Knoten- und Kantenmanipulation nicht möglich!!


Constructor & Destructor Documentation

complementarySubgraph const subgraph G  )  throw () [protected]
 

~complementarySubgraph  )  throw () [protected, virtual]
 


Member Function Documentation

TArc AddArc TNode  u,
TNode  v
throw (ERRange,ERRejected) [virtual]
 

Implements abstractSubgraph.

void AddArc TArc  a  )  throw (ERRejected) [virtual]
 

adds an arc (from sourcegraph) to the subgraph.

If one of the nodes StartNode(a) or EndNode(a) isn't on the subgraph, it will be automatical be added.

Parameters:
a an arc of the SourceGraph
Exceptions:
ERRange,ERRejected ??? Check this!

Implements abstractSubgraph.

void AddNode TNode  u  )  throw (ERRange,ERRejected) [virtual]
 

Implements abstractSubgraph.

TArc Adjacency TNode  from,
TNode  to
throw (ERRange)
 

unsigned long Allocated  )  const throw () [virtual]
 

Reimplemented from abstractSubgraph.

const abstractSubgraph * ComplementarySubgraph  )  const throw () [virtual]
 

returns a reference to a graph: SourceGraph without this graph

The returned reference doesn't have to be deleted! Deletion will be made automatical.

If SourceGraph G:= (V,E) and subgraph H:= (V1,E1) and V1 is part of V and E1 is part of E, then the returned graph I:= (V2,E2) is defined as follows:

  • V2 := "V without V1"
  • E2 := all edges which are incident in V2 that means all edges which are between a vertex of V1 and one of V2 are not either in E1 nor in E2.

=> the "WithoutGraph" of I is the original graph H.

Implements abstractSubgraph.

TNode EndNode TArc   )  const throw (ERRange) [virtual]
 

Implements abstractSubgraph.

TArc First TNode   )  const throw (ERRange,ERRejected)
 

bool HasArc TArc   )  const throw (ERRange) [virtual]
 

Implements abstractSubgraph.

bool HasNode TNode  node  )  const throw (ERRange) [virtual]
 

tests, if node is on this subgraph

Implements abstractSubgraph.

TArc M  )  const throw () [virtual]
 

returns the number of edges

Implements abstractSubgraph.

TNode N  )  const throw () [virtual]
 

returns the number of vertices

Implements abstractSubgraph.

void OmitArc TNode  u,
TNode  v
throw (ERRange,ERRejected) [virtual]
 

Implements abstractSubgraph.

void OmitArc TArc  a  )  throw (ERRange,ERRejected) [virtual]
 

deletes an arc from the subgraph.

The nodes StartNode(a) and EndNode(a) will remain on the subgraph.

Parameters:
a an arc of the SourceGraph
Exceptions:
ERRange,ERRejected ??? Check this!

Implements abstractSubgraph.

void OmitIsolatedNodes  )  throw () [virtual]
 

Implements abstractSubgraph.

void OmitNode TNode  u  )  throw (ERRange,ERRejected) [virtual]
 

Implements abstractSubgraph.

TArc Right TArc  ,
TNode 
const throw (ERRange,ERRejected)
 

unsigned long Size  )  const throw () [virtual]
 

Implements goblinRootObject.

const abstractMixedGraph * SourceGraph  )  const throw () [virtual]
 

getSourceGraph returns a reference to the original graph.

The returned reference doesn't have to be deleted! Deletion will be made automatically.

Implements abstractSubgraph.

TNode StartNode TArc   )  const throw (ERRange) [virtual]
 

Implements abstractSubgraph.