#include <ogdf/basic/HyperGraph.h>
Classes | |
| class | AdjArray |
| Dynamic arrays indexed with adjacency entries. More... | |
| class | AdjElement |
| Representation of adjacency elements. More... | |
| class | ArrayController |
| Array controllers manage the graph arrays of an element. More... | |
| class | ArrayControllerTypes |
| class | EdgeArray |
| Dynamic arrays indexed with hyper edges. More... | |
| class | EdgeElement |
| Representation of hyper edges. More... | |
| class | GraphArray |
| class | GraphArrayBase |
| class | NodeArray |
| Dynamic arrays indexed with nodes. More... | |
| class | NodeElement |
| Representation of node elements. More... | |
Public Types | |
| typedef EdgeElement * | edge |
| typedef NodeElement * | node |
Public Member Functions | |
| HyperGraph () | |
| Creates an empty hyper graph. | |
| AdjElement * | addNode (NodeElement *pNode, EdgeElement *pEdge, bool checkIfAlreadyExists=false) |
| Makes pNode and pEdge incident; returns the corresponding AdjElement. | |
| void | clear () |
| Clears the graph. | |
| void | delAdjElement (AdjElement *pAdj) |
| Removes one endpoint pAdj from a hyper edge. | |
| void | delAdjElement (NodeElement *pNode, EdgeElement *pEdge) |
| Removes the endpoint pNode from the hyper edge pEdge. | |
| void | delEdge (EdgeElement *pEdge) |
| Deletes hyper edge pEdge. | |
| void | delNode (NodeElement *pNode) |
| Deletes node pNode. | |
| AdjElement * | findAdjElement (NodeElement *pNode, EdgeElement *pEdge) const |
| Returns the AdjElement for pNode and pEdge. | |
| AdjElement * | newAdjElement (NodeElement *pNode, EdgeElement *pEdge) |
| Creates a new AdjElement which makes pNode and pEdge incident. | |
| EdgeElement * | newEdge () |
| Creates a new edge which is not incident to any nodes. | |
| EdgeElement * | newEdge (NodeElement *pNode1, NodeElement *pNode2) |
| Creates a new edge which is incident to the two nodes pNode1, pNode2. | |
| NodeElement * | newNode () |
| Creates a new node. | |
| int | numberOfEdges () const |
| int | numberOfNodes () const |
| void | removeNode (NodeElement *pNode, EdgeElement *pEdge, bool removeDuplicates=false) |
| If pNode and pEdge are incident, the corresponding AdjElement is removed. | |
Protected Member Functions | |
| AdjElement * | allocateAdjElement () |
| Allocates a new AdjElement using the EFreeListIndexPool and lets the controller check if arrays have to be resized. | |
| EdgeElement * | allocateEdgeElement () |
| Allocates a new EdgeElement using the EFreeListIndexPool and lets the controller check if arrays have to be resized. | |
| NodeElement * | allocateNodeElement () |
| Allocates a new NodeElement using the EFreeListIndexPool and lets the controller check if arrays have to be resized. | |
| void | freeAdjElement (AdjElement *pAdj) |
| Frees a used AdjElement. | |
| void | freeEdgeElement (EdgeElement *pEdge) |
| Frees a used EdgeElement. | |
| void | freeNodeElement (NodeElement *pNode) |
| Frees a used NodeElement. | |
| void | registerArray (GraphArrayBase< NodeElement > *pArray) |
| void | registerArray (GraphArrayBase< EdgeElement > *pArray) |
| void | registerArray (GraphArrayBase< AdjElement > *pArray) |
| void | unregisterArray (GraphArrayBase< NodeElement > *pArray) |
| void | unregisterArray (GraphArrayBase< EdgeElement > *pArray) |
| void | unregisterArray (GraphArrayBase< AdjElement > *pArray) |
Protected Attributes | |
| EFreeListIndexPool< AdjElement,&AdjElement::m_pNext_nodeAdj,&AdjElement::m_index > | m_adjAllocator |
| ArrayController< AdjElement > | m_adjArrayController |
| controller for adj arrays | |
| EFreeListIndexPool < EdgeElement,&EdgeElement::m_pNext,&EdgeElement::m_index > | m_edgeAllocator |
| ArrayController< EdgeElement > | m_edgeArrayController |
| controller for edge arrays | |
| EFreeListIndexPool < NodeElement,&NodeElement::m_pNext,&NodeElement::m_index > | m_nodeAllocator |
| ArrayController< NodeElement > | m_nodeArrayController |
| controller for node arrays | |
| int | m_numEdges |
| int | m_numNodes |
| EdgeElement * | m_pFirstEdge |
| NodeElement * | m_pFirstNode |
| EdgeElement * | m_pLastEdge |
| NodeElement * | m_pLastNode |
Friends | |
| class | HyperGraphTypes |
Definition at line 57 of file HyperGraph.h.
| typedef EdgeElement* ogdf::HyperGraph::edge |
Definition at line 148 of file HyperGraph.h.
| typedef NodeElement* ogdf::HyperGraph::node |
Definition at line 147 of file HyperGraph.h.
|
inline |
Creates an empty hyper graph.
Definition at line 666 of file HyperGraph.h.
|
inline |
Makes pNode and pEdge incident; returns the corresponding AdjElement.
Definition at line 448 of file HyperGraph.h.
|
inlineprotected |
Allocates a new AdjElement using the EFreeListIndexPool and lets the controller check if arrays have to be resized.
Definition at line 354 of file HyperGraph.h.
|
inlineprotected |
Allocates a new EdgeElement using the EFreeListIndexPool and lets the controller check if arrays have to be resized.
Definition at line 346 of file HyperGraph.h.
|
inlineprotected |
Allocates a new NodeElement using the EFreeListIndexPool and lets the controller check if arrays have to be resized.
Definition at line 338 of file HyperGraph.h.
|
inline |
Clears the graph.
Definition at line 765 of file HyperGraph.h.
|
inline |
Removes one endpoint pAdj from a hyper edge.
Definition at line 703 of file HyperGraph.h.
|
inline |
Removes the endpoint pNode from the hyper edge pEdge.
Definition at line 441 of file HyperGraph.h.
|
inline |
Deletes hyper edge pEdge.
Definition at line 732 of file HyperGraph.h.
| void ogdf::HyperGraph::delNode | ( | HyperGraph::NodeElement * | pNode | ) |
Deletes node pNode.
Definition at line 746 of file HyperGraph.h.
|
inline |
Returns the AdjElement for pNode and pEdge.
In case pNode and pEdge are not incident the function returns 0.
| pNode | is the node. |
| pEdge | is the hyper edge. |
Definition at line 711 of file HyperGraph.h.
|
inlineprotected |
Frees a used AdjElement.
Definition at line 374 of file HyperGraph.h.
|
inlineprotected |
Frees a used EdgeElement.
Definition at line 368 of file HyperGraph.h.
|
inlineprotected |
Frees a used NodeElement.
Definition at line 362 of file HyperGraph.h.
|
inline |
Creates a new AdjElement which makes pNode and pEdge incident.
| pNode | is the node. |
| pEdge | is the hyper edge. |
Definition at line 691 of file HyperGraph.h.
|
inline |
Creates a new edge which is not incident to any nodes.
Definition at line 682 of file HyperGraph.h.
|
inline |
Creates a new edge which is incident to the two nodes pNode1, pNode2.
Definition at line 419 of file HyperGraph.h.
|
inline |
Creates a new node.
Definition at line 673 of file HyperGraph.h.
|
inline |
Definition at line 762 of file HyperGraph.h.
|
inline |
Definition at line 760 of file HyperGraph.h.
|
inlineprotected |
Definition at line 328 of file HyperGraph.h.
|
inlineprotected |
Definition at line 329 of file HyperGraph.h.
|
inlineprotected |
Definition at line 330 of file HyperGraph.h.
|
inline |
If pNode and pEdge are incident, the corresponding AdjElement is removed.
| pNode | is the node. |
| pEdge | is the hyper edge. |
| removeDuplicates | is a flag, if it is set the function will remove any existing duplicates too. |
Definition at line 466 of file HyperGraph.h.
|
inlineprotected |
Definition at line 333 of file HyperGraph.h.
|
inlineprotected |
Definition at line 334 of file HyperGraph.h.
|
inlineprotected |
Definition at line 335 of file HyperGraph.h.
|
friend |
Definition at line 59 of file HyperGraph.h.
|
protected |
Definition at line 176 of file HyperGraph.h.
|
protected |
controller for adj arrays
Definition at line 326 of file HyperGraph.h.
|
protected |
Definition at line 170 of file HyperGraph.h.
|
protected |
controller for edge arrays
Definition at line 325 of file HyperGraph.h.
|
protected |
Definition at line 164 of file HyperGraph.h.
|
protected |
controller for node arrays
Definition at line 324 of file HyperGraph.h.
|
protected |
Definition at line 157 of file HyperGraph.h.
|
protected |
Definition at line 153 of file HyperGraph.h.
|
protected |
Definition at line 155 of file HyperGraph.h.
|
protected |
Definition at line 151 of file HyperGraph.h.
|
protected |
Definition at line 156 of file HyperGraph.h.
|
protected |
Definition at line 152 of file HyperGraph.h.