Open
Graph Drawing
Framework

 v. 2023.09 (Elderberry)
 

Loading...
Searching...
No Matches
EmbedPQTree.h
Go to the documentation of this file.
1
32#pragma once
33
34#include <ogdf/basic/Graph.h>
35#include <ogdf/basic/PQTree.h>
36#include <ogdf/basic/SList.h>
39
40namespace ogdf {
41namespace booth_lueker {
42
43class EmbedPQTree : public PQTree<edge, IndInfo*, bool> {
44public:
46
47 virtual ~EmbedPQTree() { }
48
49 virtual void emptyAllPertinentNodes() override;
50
52
54
58
61
63
67
71
75
79
83
88
91
92protected:
95
98
100 PQNode<edge, IndInfo*, bool>* nodePtr) const override;
101
103 PQNode<edge, IndInfo*, bool>* nodePtr) const override;
104
106 PQNode<edge, IndInfo*, bool>* other) const override;
108
111
116
117private:
120 bool addIndicator = false, PQNode<edge, IndInfo*, bool>* opposite = nullptr);
121
124};
125
126}
127}
Declaration of the class EmbedIndicator.
Includes declaration of graph class.
Declaration and implementation of the class PQTree.
Declaration of class PlanarLeafKey.
Declaration of singly linked lists and iterators.
Class for the representation of edges.
Definition Graph_d.h:300
Class for the representation of nodes.
Definition Graph_d.h:177
The class template PQLeafKey is a derived class of class template PQBasicKey.
Definition PQLeafKey.h:87
The class template PQBasicKey is an abstract base class.
Definition PQNode.h:55
virtual bool Reduction(SListPure< PQLeafKey< T, X, Y > * > &leafKeys)
Tests whether permissible permutations of the elements of U exist such that the elements of a subset ...
Definition PQTree.h:2230
virtual int Initialize(SListPure< PQLeafKey< T, X, Y > * > &leafKeys)
Initializes the PQ-tree with a set of elements.
Definition PQTree.h:1909
virtual void front(PQNode< T, X, Y > *nodePtr, SListPure< PQLeafKey< T, X, Y > * > &leafKeys)
Returns the keys stored in the leaves of the front of nodePtr.
Definition PQTree.h:1873
Singly linked lists.
Definition SList.h:179
PQNode< edge, IndInfo *, bool > * scanSibLeft(PQNode< edge, IndInfo *, bool > *nodePtr) const
Definition EmbedPQTree.h:68
int Initialize(SListPure< PQLeafKey< edge, IndInfo *, bool > * > &leafKeys) override
Definition EmbedPQTree.h:55
virtual PQNode< edge, IndInfo *, bool > * clientSibLeft(PQNode< edge, IndInfo *, bool > *nodePtr) const override
PQNode< edge, IndInfo *, bool > * scanLeftEndmost(PQNode< edge, IndInfo *, bool > *nodePtr) const
Definition EmbedPQTree.h:76
virtual void front(PQNode< edge, IndInfo *, bool > *nodePtr, SListPure< PQBasicKey< edge, IndInfo *, bool > * > &leafKeys)
PQNode< edge, IndInfo *, bool > * scanNextSib(PQNode< edge, IndInfo *, bool > *nodePtr, PQNode< edge, IndInfo *, bool > *other)
Definition EmbedPQTree.h:84
virtual bool Reduction(SListPure< PlanarLeafKey< IndInfo * > * > &leafKeys)
virtual PQNode< edge, IndInfo *, bool > * clientLeftEndmost(PQNode< edge, IndInfo *, bool > *nodePtr) const override
virtual void getFront(PQNode< edge, IndInfo *, bool > *nodePtr, SListPure< PQBasicKey< edge, IndInfo *, bool > * > &leafKeys)
virtual void emptyAllPertinentNodes() override
Cleans up all flags that have been set in the pertinent nodes during the reduction process.
void ReplaceRoot(SListPure< PlanarLeafKey< IndInfo * > * > &leafKeys, SListPure< edge > &frontier, SListPure< node > &opposed, SListPure< node > &nonOpposed, node v)
virtual PQNode< edge, IndInfo *, bool > * clientNextSib(PQNode< edge, IndInfo *, bool > *nodePtr, PQNode< edge, IndInfo *, bool > *other) const override
void front(PQNode< edge, IndInfo *, bool > *nodePtr, SListPure< PQLeafKey< edge, IndInfo *, bool > * > &leafKeys) override
void ReplaceFullRoot(SListPure< PlanarLeafKey< IndInfo * > * > &leafKeys, SListPure< PQBasicKey< edge, IndInfo *, bool > * > &frontier, node v, bool addIndicator=false, PQNode< edge, IndInfo *, bool > *opposite=nullptr)
virtual PQNode< edge, IndInfo *, bool > * clientSibRight(PQNode< edge, IndInfo *, bool > *nodePtr) const override
PQNode< edge, IndInfo *, bool > * scanSibRight(PQNode< edge, IndInfo *, bool > *nodePtr) const
Definition EmbedPQTree.h:72
void ReplacePartialRoot(SListPure< PlanarLeafKey< IndInfo * > * > &leafKeys, SListPure< PQBasicKey< edge, IndInfo *, bool > * > &frontier, node v)
virtual void clientDefinedEmptyNode(PQNode< edge, IndInfo *, bool > *nodePtr) override
virtual int Initialize(SListPure< PlanarLeafKey< IndInfo * > * > &leafKeys)
virtual PQNode< edge, IndInfo *, bool > * clientRightEndmost(PQNode< edge, IndInfo *, bool > *nodePtr) const override
PQNode< edge, IndInfo *, bool > * scanRightEndmost(PQNode< edge, IndInfo *, bool > *nodePtr) const
Definition EmbedPQTree.h:80
bool Reduction(SListPure< PQLeafKey< edge, IndInfo *, bool > * > &leafKeys) override
Definition EmbedPQTree.h:64
virtual const char * clientPrintStatus(PQNode< edge, IndInfo *, bool > *nodePtr) override
static MultilevelBuilder * getDoubleFactoredZeroAdjustedMerger()
The namespace for all OGDF objects.