Open
Graph Drawing
Framework

 v. 2023.09 (Elderberry)
 

Loading...
Searching...
No Matches
ogdf::Hypergraph Class Reference

#include <ogdf/hypergraph/Hypergraph.h>

Public Member Functions

 Hypergraph ()
 Constructs an empty hypergraph.
 
 Hypergraph (const Hypergraph &H)
 Constructs a hypergraph that is a copy of H.
 
 ~Hypergraph ()
 Destructor.
 
template<class LIST >
void allHyperedges (LIST &hyperedgeList) const
 Returns a list with all hyperedges of the hypergraph.
 
template<class LIST >
void allHypernodes (LIST &hypernodeList) const
 Returns a list with all hypernodes of the hypergraph.
 
void clear ()
 Removes all hypernodes and all hyperedges from the hypergraph.
 
bool consistency () const
 Checks the consistency of the data structure.
 
void delHyperedge (hyperedge e)
 Removes hyperedge e from the hypergraph.
 
void delHypernode (hypernode v)
 Removes hypernode v and all incident hyperedges from the hypergraph.
 
bool empty () const
 Returns true iff the hypergraph is empty (ie. contains no hypernodes).
 
hyperedge firstHyperedge () const
 Returns the first hyperedge in the list of all hyperedges.
 
hypernode firstHypernode () const
 Returns the first hypernode in the list of all hypernodes.
 
int hyperedgeArrayTableSize () const
 Returns the table size of hyperedge arrays within the hypergraph.
 
internal::GraphList< HyperedgeElementhyperedges () const
 Returns the list of all hyperedges.
 
int hypernodeArrayTableSize () const
 Returns the table size of hypernode arrays with the hypergraph.
 
internal::GraphList< HypernodeElementhypernodes () const
 Returns the list of all hypernodes.
 
hyperedge lastHyperEdge () const
 Returns the last hyperedge in the list of all hyperedges.
 
hypernode lastHypernode () const
 Returns the last hypernode in the list of all hypernodes.
 
void loadPlaHypergraph (const char *fileName)
 Reads hypergraph in pla format from the file.
 
int maxHyperedgeIndex () const
 Returns the largest used hyperedge index.
 
int maxHypernodeIndex () const
 Returns the largest used hypernode index.
 
hyperedge newHyperedge (int pIndex, List< hypernode > &hypernodes)
 Creates a new hyperedge between hypernodes and returns it.
 
hyperedge newHyperedge (List< hypernode > &hypernodes)
 Creates a new hyperedge btween hypernodes and returns it.
 
hypernode newHypernode ()
 Creates a new hypernode and returns it.
 
hypernode newHypernode (HypernodeElement::Type pType)
 Creates a new hypernode with given pType and returns it.
 
hypernode newHypernode (int pIndex)
 Creates a new hypernode with given pIndex and returns it.
 
hypernode newHypernode (int pIndex, HypernodeElement::Type pType)
 Creates a new hypernode with given pIndex and pType and returns it.
 
int numberOfHyperedges () const
 Returns the number of hyperedges in the hypergraph.
 
int numberOfHypernodes () const
 Returns the number of hypernodes in the hypergraph.
 
Hypergraphoperator= (const Hypergraph &H)
 
hyperedge randomHyperedge () const
 Returns a randomly chosen hyperedge.
 
hypernode randomHypernode () const
 Returns a randomly chosen hypergraph.
 
void readBenchHypergraph (const char *filename)
 Reads hypergraph in bench format from the file.
 
void readBenchHypergraph (std::istream &is)
 Reads hypergraph in bench format from the input stream.
 
void readPlaHypergraph (std::istream &is)
 Reads hypergraph in pla format from the input stream.
 
ListIterator< HypergraphArrayBase * > registerHyperedgeArray (HypergraphArrayBase *pHyperedgeArray) const
 
ListIterator< HypergraphArrayBase * > registerHypernodeArray (HypergraphArrayBase *pHypernodeArray) const
 Registers a node array.
 
ListIterator< HypergraphObserver * > registerObserver (HypergraphObserver *pObserver) const
 Registers a hypergraph observer (e.g. a EdgeStandardRep).
 
void unregisterHyperedgeArray (ListIterator< HypergraphArrayBase * > it) const
 Unregisters an hyperedge array.
 
void unregisterHypernodeArray (ListIterator< HypergraphArrayBase * > it) const
 Unregisters a hypernode array.
 
void unregisterObserver (ListIterator< HypergraphObserver * > it) const
 Unregisters a hypergraph observer.
 

Public Attributes

 OGDF_MALLOC_NEW_DELETE
 

Private Member Functions

HypernodeElement::Type gateType (string gate)
 
void initArrays ()
 
void initObservers ()
 
int nextEntry (char *buffer, int from, string stop)
 

Private Attributes

ListPure< HypergraphArrayBase * > m_hyperedgeArrays
 
int m_hyperedgeArrayTableSize
 The current table size of hyperedge arrays within the hypergraph.
 
int m_hyperedgeIdCount
 The Index that will be assigned to the next created hyperedge.
 
internal::GraphList< HyperedgeElementm_hyperedges
 The list of all hyperedges.
 
ListPure< HypergraphArrayBase * > m_hypernodeArrays
 The registered hypergraph arrays & observers.
 
int m_hypernodeArrayTableSize
 The current table size of hypernode arrays within the hypergraph.
 
int m_hypernodeIdCount
 The Index that will be assigned to the next created hypernode.
 
internal::GraphList< HypernodeElementm_hypernodes
 The list of all hypernodes.
 
int m_nHyperedges
 The number of hyperedges in the hypergraph.
 
int m_nHypernodes
 The number of hypernodes in the hypergraph.
 
ListPure< HypergraphObserver * > m_observers
 

Friends

std::ostream & operator<< (std::ostream &os, ogdf::Hypergraph &H)
 
std::istream & operator>> (std::istream &is, ogdf::Hypergraph &H)
 

Detailed Description

Definition at line 323 of file Hypergraph.h.

Constructor & Destructor Documentation

◆ Hypergraph() [1/2]

ogdf::Hypergraph::Hypergraph ( )

Constructs an empty hypergraph.

◆ Hypergraph() [2/2]

ogdf::Hypergraph::Hypergraph ( const Hypergraph H)

Constructs a hypergraph that is a copy of H.

◆ ~Hypergraph()

ogdf::Hypergraph::~Hypergraph ( )

Destructor.

Member Function Documentation

◆ allHyperedges()

template<class LIST >
void ogdf::Hypergraph::allHyperedges ( LIST hyperedgeList) const
inline

Returns a list with all hyperedges of the hypergraph.

Definition at line 461 of file Hypergraph.h.

◆ allHypernodes()

template<class LIST >
void ogdf::Hypergraph::allHypernodes ( LIST hypernodeList) const
inline

Returns a list with all hypernodes of the hypergraph.

Definition at line 452 of file Hypergraph.h.

◆ clear()

void ogdf::Hypergraph::clear ( )

Removes all hypernodes and all hyperedges from the hypergraph.

◆ consistency()

bool ogdf::Hypergraph::consistency ( ) const

Checks the consistency of the data structure.

◆ delHyperedge()

void ogdf::Hypergraph::delHyperedge ( hyperedge  e)

Removes hyperedge e from the hypergraph.

Parameters
eis the hyperegde that will be deleted.

◆ delHypernode()

void ogdf::Hypergraph::delHypernode ( hypernode  v)

Removes hypernode v and all incident hyperedges from the hypergraph.

Parameters
vis the hypernode that will be deleted.

◆ empty()

bool ogdf::Hypergraph::empty ( ) const
inline

Returns true iff the hypergraph is empty (ie. contains no hypernodes).

Definition at line 364 of file Hypergraph.h.

◆ firstHyperedge()

hyperedge ogdf::Hypergraph::firstHyperedge ( ) const
inline

Returns the first hyperedge in the list of all hyperedges.

Definition at line 391 of file Hypergraph.h.

◆ firstHypernode()

hypernode ogdf::Hypergraph::firstHypernode ( ) const
inline

Returns the first hypernode in the list of all hypernodes.

Definition at line 385 of file Hypergraph.h.

◆ gateType()

HypernodeElement::Type ogdf::Hypergraph::gateType ( string  gate)
private

◆ hyperedgeArrayTableSize()

int ogdf::Hypergraph::hyperedgeArrayTableSize ( ) const
inline

Returns the table size of hyperedge arrays within the hypergraph.

Definition at line 400 of file Hypergraph.h.

◆ hyperedges()

internal::GraphList< HyperedgeElement > ogdf::Hypergraph::hyperedges ( ) const
inline

Returns the list of all hyperedges.

Definition at line 370 of file Hypergraph.h.

◆ hypernodeArrayTableSize()

int ogdf::Hypergraph::hypernodeArrayTableSize ( ) const
inline

Returns the table size of hypernode arrays with the hypergraph.

Definition at line 397 of file Hypergraph.h.

◆ hypernodes()

internal::GraphList< HypernodeElement > ogdf::Hypergraph::hypernodes ( ) const
inline

Returns the list of all hypernodes.

Definition at line 367 of file Hypergraph.h.

◆ initArrays()

void ogdf::Hypergraph::initArrays ( )
private

◆ initObservers()

void ogdf::Hypergraph::initObservers ( )
private

◆ lastHyperEdge()

hyperedge ogdf::Hypergraph::lastHyperEdge ( ) const
inline

Returns the last hyperedge in the list of all hyperedges.

Definition at line 394 of file Hypergraph.h.

◆ lastHypernode()

hypernode ogdf::Hypergraph::lastHypernode ( ) const
inline

Returns the last hypernode in the list of all hypernodes.

Definition at line 388 of file Hypergraph.h.

◆ loadPlaHypergraph()

void ogdf::Hypergraph::loadPlaHypergraph ( const char fileName)

Reads hypergraph in pla format from the file.

◆ maxHyperedgeIndex()

int ogdf::Hypergraph::maxHyperedgeIndex ( ) const
inline

Returns the largest used hyperedge index.

Definition at line 382 of file Hypergraph.h.

◆ maxHypernodeIndex()

int ogdf::Hypergraph::maxHypernodeIndex ( ) const
inline

Returns the largest used hypernode index.

Definition at line 379 of file Hypergraph.h.

◆ newHyperedge() [1/2]

hyperedge ogdf::Hypergraph::newHyperedge ( int  pIndex,
List< hypernode > &  hypernodes 
)

Creates a new hyperedge between hypernodes and returns it.

Parameters
pIndexis the unique index of the newly created hyperedge.
hypernodesare the hypernodes of the newly created hyperedge.
Returns
the newly created hyperedge.

◆ newHyperedge() [2/2]

hyperedge ogdf::Hypergraph::newHyperedge ( List< hypernode > &  hypernodes)

Creates a new hyperedge btween hypernodes and returns it.

Parameters
hypernodesare the hypernodes of the newly created hyperedge.
Returns
the newly created hyperedge.

◆ newHypernode() [1/4]

hypernode ogdf::Hypergraph::newHypernode ( )

Creates a new hypernode and returns it.

◆ newHypernode() [2/4]

hypernode ogdf::Hypergraph::newHypernode ( HypernodeElement::Type  pType)

Creates a new hypernode with given pType and returns it.

◆ newHypernode() [3/4]

hypernode ogdf::Hypergraph::newHypernode ( int  pIndex)

Creates a new hypernode with given pIndex and returns it.

◆ newHypernode() [4/4]

hypernode ogdf::Hypergraph::newHypernode ( int  pIndex,
HypernodeElement::Type  pType 
)

Creates a new hypernode with given pIndex and pType and returns it.

◆ nextEntry()

int ogdf::Hypergraph::nextEntry ( char buffer,
int  from,
string  stop 
)
private

◆ numberOfHyperedges()

int ogdf::Hypergraph::numberOfHyperedges ( ) const
inline

Returns the number of hyperedges in the hypergraph.

Definition at line 376 of file Hypergraph.h.

◆ numberOfHypernodes()

int ogdf::Hypergraph::numberOfHypernodes ( ) const
inline

Returns the number of hypernodes in the hypergraph.

Definition at line 373 of file Hypergraph.h.

◆ operator=()

Hypergraph & ogdf::Hypergraph::operator= ( const Hypergraph H)

◆ randomHyperedge()

hyperedge ogdf::Hypergraph::randomHyperedge ( ) const

Returns a randomly chosen hyperedge.

◆ randomHypernode()

hypernode ogdf::Hypergraph::randomHypernode ( ) const

Returns a randomly chosen hypergraph.

◆ readBenchHypergraph() [1/2]

void ogdf::Hypergraph::readBenchHypergraph ( const char filename)

Reads hypergraph in bench format from the file.

◆ readBenchHypergraph() [2/2]

void ogdf::Hypergraph::readBenchHypergraph ( std::istream &  is)

Reads hypergraph in bench format from the input stream.

◆ readPlaHypergraph()

void ogdf::Hypergraph::readPlaHypergraph ( std::istream &  is)

Reads hypergraph in pla format from the input stream.

◆ registerHyperedgeArray()

ListIterator< HypergraphArrayBase * > ogdf::Hypergraph::registerHyperedgeArray ( HypergraphArrayBase pHyperedgeArray) const

◆ registerHypernodeArray()

ListIterator< HypergraphArrayBase * > ogdf::Hypergraph::registerHypernodeArray ( HypergraphArrayBase pHypernodeArray) const

Registers a node array.

◆ registerObserver()

ListIterator< HypergraphObserver * > ogdf::Hypergraph::registerObserver ( HypergraphObserver pObserver) const

Registers a hypergraph observer (e.g. a EdgeStandardRep).

◆ unregisterHyperedgeArray()

void ogdf::Hypergraph::unregisterHyperedgeArray ( ListIterator< HypergraphArrayBase * >  it) const

Unregisters an hyperedge array.

◆ unregisterHypernodeArray()

void ogdf::Hypergraph::unregisterHypernodeArray ( ListIterator< HypergraphArrayBase * >  it) const

Unregisters a hypernode array.

◆ unregisterObserver()

void ogdf::Hypergraph::unregisterObserver ( ListIterator< HypergraphObserver * >  it) const

Unregisters a hypergraph observer.

Friends And Related Symbol Documentation

◆ operator<<

std::ostream & operator<< ( std::ostream &  os,
ogdf::Hypergraph H 
)
friend

◆ operator>>

std::istream & operator>> ( std::istream &  is,
ogdf::Hypergraph H 
)
friend

Member Data Documentation

◆ m_hyperedgeArrays

ListPure<HypergraphArrayBase*> ogdf::Hypergraph::m_hyperedgeArrays
mutableprivate

Definition at line 350 of file Hypergraph.h.

◆ m_hyperedgeArrayTableSize

int ogdf::Hypergraph::m_hyperedgeArrayTableSize
private

The current table size of hyperedge arrays within the hypergraph.

Definition at line 346 of file Hypergraph.h.

◆ m_hyperedgeIdCount

int ogdf::Hypergraph::m_hyperedgeIdCount
private

The Index that will be assigned to the next created hyperedge.

Definition at line 340 of file Hypergraph.h.

◆ m_hyperedges

internal::GraphList<HyperedgeElement> ogdf::Hypergraph::m_hyperedges
private

The list of all hyperedges.

Definition at line 328 of file Hypergraph.h.

◆ m_hypernodeArrays

ListPure<HypergraphArrayBase*> ogdf::Hypergraph::m_hypernodeArrays
mutableprivate

The registered hypergraph arrays & observers.

Definition at line 349 of file Hypergraph.h.

◆ m_hypernodeArrayTableSize

int ogdf::Hypergraph::m_hypernodeArrayTableSize
private

The current table size of hypernode arrays within the hypergraph.

Definition at line 343 of file Hypergraph.h.

◆ m_hypernodeIdCount

int ogdf::Hypergraph::m_hypernodeIdCount
private

The Index that will be assigned to the next created hypernode.

Definition at line 337 of file Hypergraph.h.

◆ m_hypernodes

internal::GraphList<HypernodeElement> ogdf::Hypergraph::m_hypernodes
private

The list of all hypernodes.

Definition at line 325 of file Hypergraph.h.

◆ m_nHyperedges

int ogdf::Hypergraph::m_nHyperedges
private

The number of hyperedges in the hypergraph.

Definition at line 334 of file Hypergraph.h.

◆ m_nHypernodes

int ogdf::Hypergraph::m_nHypernodes
private

The number of hypernodes in the hypergraph.

Definition at line 331 of file Hypergraph.h.

◆ m_observers

ListPure<HypergraphObserver*> ogdf::Hypergraph::m_observers
mutableprivate

Definition at line 351 of file Hypergraph.h.

◆ OGDF_MALLOC_NEW_DELETE

ogdf::Hypergraph::OGDF_MALLOC_NEW_DELETE

Definition at line 508 of file Hypergraph.h.


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