Open
Graph Drawing
Framework

 v. 2023.09 (Elderberry)
 

Loading...
Searching...
No Matches
PQInternalNode.h
Go to the documentation of this file.
1
32#pragma once
33
34#include <ogdf/basic/pqtree/PQInternalKey.h> // IWYU pragma: keep
37
38namespace ogdf {
39template<class T, class X, class Y>
40class PQLeafKey;
41template<class T, class X, class Y>
42class PQNodeKey;
43
81template<class T, class X, class Y>
82class PQInternalNode : public PQNode<T, X, Y> {
83public:
85 PQInternalKey<T, X, Y>* internalPtr, PQNodeKey<T, X, Y>* infoPtr)
86 : PQNode<T, X, Y>(count, infoPtr) {
87 m_type = typ;
88 m_status = stat;
90
91 m_pointerToInternal = internalPtr;
92 internalPtr->setNodePointer(this);
93 }
94
96 PQInternalKey<T, X, Y>* internalPtr)
97 : PQNode<T, X, Y>(count) {
98 m_type = typ;
99 m_status = stat;
101 m_pointerToInternal = internalPtr;
102 internalPtr->setNodePointer(this);
103 }
104
106 PQNodeKey<T, X, Y>* infoPtr)
107 : PQNode<T, X, Y>(count, infoPtr) {
108 m_type = typ;
109 m_status = stat;
112 }
113
115 : PQNode<T, X, Y>(count) {
116 m_type = typ;
117 m_status = stat;
119 m_pointerToInternal = nullptr;
120 }
121
134
136 virtual PQLeafKey<T, X, Y>* getKey() const { return nullptr; }
137
150 virtual bool setKey(PQLeafKey<T, X, Y>* pointerToKey) { return pointerToKey == nullptr; }
151
154
166 virtual bool setInternal(PQInternalKey<T, X, Y>* pointerToInternal) {
167 m_pointerToInternal = pointerToInternal;
168 if (pointerToInternal != nullptr) {
170 return true;
171 } else {
172 return false;
173 }
174 }
175
177
183 virtual PQNodeRoot::PQNodeMark mark() const { return m_mark; }
184
186 virtual void mark(PQNodeRoot::PQNodeMark m) { m_mark = m; }
187
189
198 virtual PQNodeRoot::PQNodeStatus status() const { return m_status; }
199
201 virtual void status(PQNodeRoot::PQNodeStatus s) { m_status = s; }
202
204
208 virtual PQNodeRoot::PQNodeType type() const { return m_type; }
209
211 virtual void type(PQNodeRoot::PQNodeType t) { m_type = t; }
212
213private:
220
221
232
239
246};
247
248}
Declaration and implementation of the class PQInternalKey.
Declaration and implementation of the class PQNode.
Declaration and implementation of the class PQNodeRoot.
void setNodePointer(PQNode< T, X, Y > *pqNode)
The function setNodePointer() sets the private member m_nodePointer.
Definition PQBasicKey.h:156
The class template PQInternalKey is a derived class of class template PQBasicKey.
The class template PQInternalNode is used to present P-nodes and Q-nodes in the PQ-Tree.
virtual void mark(PQNodeRoot::PQNodeMark m)
Sets the variable m_mark.
PQInternalNode(int count, PQNodeRoot::PQNodeType typ, PQNodeRoot::PQNodeStatus stat, PQNodeKey< T, X, Y > *infoPtr)
PQInternalNode(int count, PQNodeRoot::PQNodeType typ, PQNodeRoot::PQNodeStatus stat)
PQNodeRoot::PQNodeType m_type
m_status is a variable storing the status of a PQInternalNode.
PQInternalNode(int count, PQNodeRoot::PQNodeType typ, PQNodeRoot::PQNodeStatus stat, PQInternalKey< T, X, Y > *internalPtr)
PQNodeRoot::PQNodeStatus m_status
m_status is a variable storing the status of a PQInternalNode.
PQInternalNode(int count, PQNodeRoot::PQNodeType typ, PQNodeRoot::PQNodeStatus stat, PQInternalKey< T, X, Y > *internalPtr, PQNodeKey< T, X, Y > *infoPtr)
virtual void type(PQNodeRoot::PQNodeType t)
Sets the variable m_type in the derived class PQInternalNode.
virtual bool setKey(PQLeafKey< T, X, Y > *pointerToKey)
Accepts only pointers pointerToKey = 0.
virtual PQNodeRoot::PQNodeType type() const
Returns the variable m_type in the derived class PQInternalNode.
virtual PQNodeRoot::PQNodeMark mark() const
Returns the variable m_mark.
virtual PQInternalKey< T, X, Y > * getInternal() const
Returns a pointer to the PQInternalKey information.
PQNodeRoot::PQNodeMark m_mark
#m_mark is a variable, storing if a PQInternalNode is QUEUEUD, BLOCKED or UNBLOCKED (see PQNode) duri...
~PQInternalNode()
The destructor does not delete any accompanying information class as PQLeafKey, PQNodeKey and PQInter...
virtual void status(PQNodeRoot::PQNodeStatus s)
Sets the variable m_status in the derived class PQInternalNode.
virtual PQLeafKey< T, X, Y > * getKey() const
Returns 0. An element of type PQInternalNode does not have a PQLeafKey.
virtual bool setInternal(PQInternalKey< T, X, Y > *pointerToInternal)
setInternal() sets the pointer variable m_pointerToInternal to the specified adress of pointerToInter...
virtual PQNodeRoot::PQNodeStatus status() const
Returns the variable m_status in the derived class PQInternalNode.
PQInternalKey< T, X, Y > * m_pointerToInternal
m_pointerToInternal stores the adress of the corresponding internal information.
The class template PQLeafKey is a derived class of class template PQBasicKey.
Definition PQLeafKey.h:84
The class template PQBasicKey is an abstract base class.
Definition PQNode.h:56
The class template PQNodeKey is a derived class of class template PQBasicKey.
Definition PQNodeKey.h:54
The namespace for all OGDF objects.