#include <ogdf/basic/HyperGraph.h>
Definition at line 56 of file HyperGraph.h.
| typedef EdgeElement* ogdf::HyperGraph::edge |
Definition at line 142 of file HyperGraph.h.
typedef for the embedded list of AdjElement at an edge
Definition at line 191 of file HyperGraph.h.
| typedef EList< HyperGraph, EdgeElement, &HyperGraph::m_numEdges, &HyperGraph::m_pFirstEdge, &HyperGraph::m_pLastEdge, &EdgeElement::m_pPrev, &EdgeElement::m_pNext > ogdf::HyperGraph::EdgeList |
typedef for the embedded list of edges
Definition at line 171 of file HyperGraph.h.
| typedef NodeElement* ogdf::HyperGraph::node |
Definition at line 141 of file HyperGraph.h.
typedef for the embedded list of AdjElement at a node
Definition at line 181 of file HyperGraph.h.
| typedef EList< HyperGraph, NodeElement, &HyperGraph::m_numNodes, &HyperGraph::m_pFirstNode, &HyperGraph::m_pLastNode, &NodeElement::m_pPrev, &NodeElement::m_pNext > ogdf::HyperGraph::NodeList |
Definition at line 161 of file HyperGraph.h.
| ogdf::HyperGraph::HyperGraph | ( | ) | [inline] |
Constructor for an empty hyper graph.
Definition at line 457 of file HyperGraph.h.
| AdjElement* ogdf::HyperGraph::addNode | ( | NodeElement * | pNode, |
| EdgeElement * | pEdge, | ||
| bool | checkIfAlreadyExists = false |
||
| ) | [inline] |
Makes pNode and pEdge incident and the corresponding AdjElement is returned.
Definition at line 525 of file HyperGraph.h.
| AdjElement* ogdf::HyperGraph::allocateAdjElement | ( | ) | [inline, protected] |
Allocates a new AdjElement using the EFreeListIndexPool and lets the controller check if arrays have to be resized.
Definition at line 401 of file HyperGraph.h.
| EdgeElement* ogdf::HyperGraph::allocateEdgeElement | ( | ) | [inline, protected] |
Allocates a new EdgeElement using the EFreeListIndexPool and lets the controller check if arrays have to be resized.
Definition at line 393 of file HyperGraph.h.
| NodeElement* ogdf::HyperGraph::allocateNodeElement | ( | ) | [inline, protected] |
Allocates a new NodeElement using the EFreeListIndexPool and lets the controller check if arrays have to be resized.
Definition at line 385 of file HyperGraph.h.
| void ogdf::HyperGraph::clear | ( | ) | [inline] |
Clears the graph.
Definition at line 618 of file HyperGraph.h.
| void ogdf::HyperGraph::delAdjElement | ( | AdjElement * | pAdj | ) | [inline] |
Deletes pAdj.
Definition at line 510 of file HyperGraph.h.
| void ogdf::HyperGraph::delAdjElement | ( | NodeElement * | pNode, |
| EdgeElement * | pEdge | ||
| ) | [inline] |
Deletes pAdj.
Definition at line 518 of file HyperGraph.h.
| void ogdf::HyperGraph::delEdge | ( | EdgeElement * | pEdge | ) | [inline] |
Deletes an edge.
Definition at line 587 of file HyperGraph.h.
| void ogdf::HyperGraph::delNode | ( | NodeElement * | pNode | ) | [inline] |
Deletes a node.
Definition at line 601 of file HyperGraph.h.
| AdjElement* ogdf::HyperGraph::findAdjElement | ( | NodeElement * | pNode, |
| EdgeElement * | pEdge | ||
| ) | const [inline] |
Returns the AdjElement for pNode and pEdge.
In case pNode and pEdge are not incident the function returns 0. Note: The function requires time O(min(degree(pNode), cardinality(pEdge))).
| pNode | is the node. |
| pEdge | is the hyper edge. |
Definition at line 566 of file HyperGraph.h.
| void ogdf::HyperGraph::freeAdjElement | ( | AdjElement * | pAdj | ) | [inline, protected] |
Frees a used AdjElement.
Definition at line 421 of file HyperGraph.h.
| void ogdf::HyperGraph::freeEdgeElement | ( | EdgeElement * | pEdge | ) | [inline, protected] |
Frees a used EdgeElement.
Definition at line 415 of file HyperGraph.h.
| void ogdf::HyperGraph::freeNodeElement | ( | NodeElement * | pNode | ) | [inline, protected] |
Frees a used NodeElement.
Definition at line 409 of file HyperGraph.h.
| AdjElement* ogdf::HyperGraph::newAdjElement | ( | NodeElement * | pNode, |
| EdgeElement * | pEdge | ||
| ) | [inline] |
Creates a new AdjElement which makes pNode and pEdge incident.
Note: This function does not check if pNode and pEdge are already incident. The HyperGraph can deal with duplicate AdjElements. However, for reasons of clarity it is not a good idea to make use of it.
| pNode | is the node. |
| pEdge | is the hyper edge. |
Definition at line 498 of file HyperGraph.h.
| EdgeElement* ogdf::HyperGraph::newEdge | ( | ) | [inline] |
Creates a new edge which is not incident to any nodes.
Definition at line 473 of file HyperGraph.h.
| EdgeElement* ogdf::HyperGraph::newEdge | ( | NodeElement * | pNode1, |
| NodeElement * | pNode2 | ||
| ) | [inline] |
Creates a new edge which is incident to the two nodes pNode1, pNode2.
Definition at line 482 of file HyperGraph.h.
| NodeElement* ogdf::HyperGraph::newNode | ( | ) | [inline] |
Creates a new node.
Definition at line 464 of file HyperGraph.h.
| int ogdf::HyperGraph::numberOfEdges | ( | ) | const [inline] |
Definition at line 615 of file HyperGraph.h.
| int ogdf::HyperGraph::numberOfNodes | ( | ) | const [inline] |
Definition at line 614 of file HyperGraph.h.
| void ogdf::HyperGraph::registerArray | ( | GraphArrayBase< NodeElement > * | pArray | ) | [inline, protected] |
Definition at line 375 of file HyperGraph.h.
| void ogdf::HyperGraph::registerArray | ( | GraphArrayBase< EdgeElement > * | pArray | ) | [inline, protected] |
Definition at line 376 of file HyperGraph.h.
| void ogdf::HyperGraph::registerArray | ( | GraphArrayBase< AdjElement > * | pArray | ) | [inline, protected] |
Definition at line 377 of file HyperGraph.h.
| void ogdf::HyperGraph::removeNode | ( | NodeElement * | pNode, |
| EdgeElement * | pEdge, | ||
| bool | removeDuplicates = false |
||
| ) | [inline] |
If pNode and pEdge are incident, the corresponding AdjElement is removed.
Note: The function requires time O(min(degree(pNode), cardinality(pEdge))).
| 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 543 of file HyperGraph.h.
| void ogdf::HyperGraph::toCliqueGraph | ( | Graph * | pG, |
| ogdf::NodeArray< NodeElement * > * | pNodeMap = 0, |
||
| ogdf::EdgeArray< EdgeElement * > * | pEdgeMap = 0 |
||
| ) | [inline] |
Definition at line 631 of file HyperGraph.h.
| void ogdf::HyperGraph::toStarGraph | ( | Graph * | pG, |
| ogdf::NodeArray< NodeElement * > * | pNodeMap = 0, |
||
| ogdf::EdgeArray< EdgeElement * > * | pEdgeMap = 0 |
||
| ) | [inline] |
Definition at line 665 of file HyperGraph.h.
| void ogdf::HyperGraph::unregisterArray | ( | GraphArrayBase< NodeElement > * | pArray | ) | [inline, protected] |
Definition at line 380 of file HyperGraph.h.
| void ogdf::HyperGraph::unregisterArray | ( | GraphArrayBase< EdgeElement > * | pArray | ) | [inline, protected] |
Definition at line 381 of file HyperGraph.h.
| void ogdf::HyperGraph::unregisterArray | ( | GraphArrayBase< AdjElement > * | pArray | ) | [inline, protected] |
Definition at line 382 of file HyperGraph.h.
EFreeListIndexPool< AdjElement, &AdjElement::m_pNext_nodeAdj, &AdjElement::m_index > ogdf::HyperGraph::m_adjAllocator [protected] |
Definition at line 209 of file HyperGraph.h.
controller for adj arrays
Definition at line 373 of file HyperGraph.h.
EFreeListIndexPool< EdgeElement, &EdgeElement::m_pNext, &EdgeElement::m_index > ogdf::HyperGraph::m_edgeAllocator [protected] |
Definition at line 203 of file HyperGraph.h.
controller for edge arrays
Definition at line 372 of file HyperGraph.h.
EFreeListIndexPool< NodeElement, &NodeElement::m_pNext, &NodeElement::m_index > ogdf::HyperGraph::m_nodeAllocator [protected] |
Definition at line 197 of file HyperGraph.h.
controller for node arrays
Definition at line 371 of file HyperGraph.h.
int ogdf::HyperGraph::m_numEdges [protected] |
Definition at line 151 of file HyperGraph.h.
int ogdf::HyperGraph::m_numNodes [protected] |
Definition at line 147 of file HyperGraph.h.
EdgeElement* ogdf::HyperGraph::m_pFirstEdge [protected] |
Definition at line 149 of file HyperGraph.h.
NodeElement* ogdf::HyperGraph::m_pFirstNode [protected] |
Definition at line 145 of file HyperGraph.h.
EdgeElement* ogdf::HyperGraph::m_pLastEdge [protected] |
Definition at line 150 of file HyperGraph.h.
NodeElement* ogdf::HyperGraph::m_pLastNode [protected] |
Definition at line 146 of file HyperGraph.h.