AVL-Bäume mit CTreeItem.
Mehr ...
- Beschreibung:
- Diese Klasse kann zur Verwaltung beliebiger Elemente in einem sortierten AVL-Baum verwendet werden. Die Elemente müssen dabei von der Basisklasse ppl6::CTreeItem abgeleitet sein.
- Achtung
- Die Klasse verwaltet keinen eigenen Mutex und ist somit nicht Thread-sicher. Die Aufrufende Anwendung muss selbst sicherstellen, dass die Klasse nicht gleichzeitig von mehreren Threads verwendet wird.
- Beschreibung:
- Im Konstruktor wird der Baum mit NULL initialisiert.
- Beschreibung:
- Der Destruktor ruft die CTree::Clear Funktion auf.
- Beschreibung:
- Diese Funktion fügt ein neues Element in den Baum ein. Dabei ist sichergestellt, dass der Baum stets sortiert und ausgewogen ist.
- Parameter
-
[in] | item | Pointer auf das hinzuzufügende Element |
- Rückgabe
- Wurde das Element erfolgreich hinzugefügt, gibt die Funktion true (1) zurück, sonst false (0) und ein entsprechender Fehlercode wird gesetzt,
void ppl6::CTree::Clear |
( |
bool |
deleteitems = false | ) |
|
- Beschreibung:
- Mit dieser Funktion wird der Inhalt des Baums gelöscht.
- Parameter
-
[in] | deleteitems | Wird der optionale Parameter auf "true" gesetzt, wird der Destruktur jedes Baumelements aufgerufen. |
- Beschreibung:
- Diese Funktion prüft zunächst ob der angegebene Wert im Baum enthalten ist und löscht anschließend das gefundene Element. Dabei ist sichergestellt, dass der Baum stets sortiert und ausgewogen ist.
- Parameter
-
[in] | item | Pointer auf das zu löschende Element |
- Rückgabe
- Wurde das Element erfolgreich gelöscht, gibt die Funktion true (1) zurück, sonst false (0) und ein entsprechender Fehlercode wird gesetzt,
int ppl6::CTree::Delete |
( |
void * |
value | ) |
|
- Beschreibung:
- Diese Funktion sucht zunächst ob der angegebene Wert im Baum enthalten ist und löscht anschließend das gefundene Element. Dabei ist sichergestellt, dass der Baum stets sortiert und ausgewogen ist.
- Parameter
-
[in] | value | Pointer auf den zu löschenden Wert |
- Rückgabe
- Wurde das Element erfolgreich gelöscht, gibt die Funktion true (1) zurück, sonst false (0) und ein entsprechender Fehlercode wird gesetzt,
CTreeItem * ppl6::CTree::Find |
( |
void * |
value | ) |
const |
- Beschreibung:
- Mit dieser Funktion wird ein beliebiger Wert innerhalb des Baums gesucht. Dazu wird die Funktion CTreeItem::CompareValue verwendet.
- Parameter
-
[in] | value | Beliebiger Pointer auf einen Wert |
- Rückgabe
- Wird der Wert im Baum gefunden, gibt die Funktion einen Pointer auf das Baum-Element zurück. Falls nicht, wird NULL zurückgegeben und der Fehlercode 421 gesetzt.
- Beschreibung:
- Mit dieser Funktion wird ein Element innerhalb des Baums gesucht. Dazu wird die Funktion CTree::CompareItems verwendet.
- Parameter
-
- Rückgabe
- Wird das Element im Baum gefunden, gibt die Funktion einen Pointer auf das Baum-Element zurück. Falls nicht, wird NULL zurückgegeben und der Fehlercode 421 gesetzt.
- Beschreibung:
- Mit dieser Funktion wird ein Element innerhalb des Baums gesucht. Dazu wird die Funktion CTree::CompareItems verwendet. Wird es gefunden, wird der Pointer auf das Element zurückgeliefert. Wird es nicht gefunden, wird automatisch ein neues Element angelegt und dessen Pointer zurückgeliefert.
- Parameter
-
- Rückgabe
- Pointer auf das gefundene oder neu angelegte Element, oder NULL, wenn ein Fehler aufgetreten ist.
- Beschreibung:
- Mit dieser Funktion wird ein Pointer auf das aktuelle Element des Baums zurückgeliefert. Dabei wird der Pointer nicht verändert.
- Rückgabe
- Pointer auf das aktuelle Element des Baums oder NULL, wenn kein Element mehr vorhanden ist. In diesesm Fall wird ausserdem der Fehlercode 422 gesetzt.
CTreeItem * ppl6::CTree::GetCurrent |
( |
| ) |
const |
- Beschreibung:
- Mit dieser Funktion wird ein Pointer auf das aktuelle Element des Baums zurückgeliefert. Dabei wird der Pointer nicht verändert.
- Rückgabe
- Pointer auf das aktuelle Element des Baums oder NULL, wenn kein Element mehr vorhanden ist. In diesesm Fall wird ausserdem der Fehlercode 422 gesetzt.
- Beschreibung:
- Mit dieser Funktion wird ein Pointer auf das erste Element des Baums zurückgeliefert.
- Rückgabe
- Pointer auf das erste Element des Baums oder NULL, wenn der Baum leer ist
- Beschreibung:
- Mit dieser Funktion wird ein Pointer auf das letzte Element des Baums zurückgeliefert.
- Rückgabe
- Pointer auf das letzte Element des Baums oder NULL, wenn der Baum leer ist
- Beschreibung:
- Mit dieser Funktion wird ein Pointer auf das letzte Element des Baums zurückgeliefert.
- Rückgabe
- Pointer auf das letzte Element des Baums oder NULL, wenn der Baum leer ist
- Beschreibung:
- Mit dieser Funktion wird ein Pointer auf das nächste Element des Baums zurückgeliefert. Somit kann der Baum sortiert vorwärts durchwandert werden.
- Rückgabe
- Pointer auf das nächste Element des Baums oder NULL, wenn keine weiteren Elemente vorhanden sind. In diesesm Fall wird ausserdem der Fehlercode 422 gesetzt.
- Beschreibung:
- Mit dieser Funktion wird ein Pointer auf das vorherige Element des Baums zurückgeliefert. Somit kann der Baum sortiert rückwärts durchwandert werden.
- Rückgabe
- Pointer auf das vorherige Element des Baums oder NULL, wenn keine weiteren Elemente vorhanden sind. In diesesm Fall wird ausserdem der Fehlercode 422 gesetzt.
- Beschreibung:
- Mit dieser Funktion wird ein Pointer auf das vorherige Element des Baums zurückgeliefert. Somit kann der Baum sortiert rückwärts durchwandert werden.
- Rückgabe
- Pointer auf das vorherige Element des Baums oder NULL, wenn keine weiteren Elemente vorhanden sind. In diesesm Fall wird ausserdem der Fehlercode 422 gesetzt.
CTreeItem * ppl6::CTree::GetRootNode |
( |
| ) |
const |
- Beschreibung:
- Diese Funktion liefert einen Pointer auf den obersten Knoten des Baums.
- Rückgabe
- CTreeItem Pointer auf Root-Knoten. Ist der Baum leer, wird NULL zurückgegeben und der Fehlercode 347 gesetzt.
Diese Funktion wird intern rekursiv aufgerufen, um einen Graphen zu erstellen, der mit Hilfe von graphviz (dot) grafisch dargestellt werden kann.
- Parameter
-
[in] | s | String, in dem der Code gespeichert werden soll |
[in] | node | Der Knoten, bei dem begonnen werden soll. |
[in] | tiefe | Die Tiefe des Baums |
- Seit
- Eingeführt mit PPL 6.2.6
Diese Funktion erzeugt einen textuellen graphen, der mit Hilfe von graphviz (dot) grafisch dargestellt werden kann.
- Parameter
-
[in] | s | String, in dem der Code gespeichert werden soll |
[in] | node | Der Knoten, bei dem begonnen werden soll. Bei Angabe von NULL (Default) wird mit dem root-Knoten begonnen. |
- Seit
- Eingeführt mit PPL 6.2.6
int ppl6::CTree::ListNodes |
( |
CCallback * |
callback | ) |
const |
- Beschreibung:
- Parameter
-
callback | Pointer auf eine von CpplCallback abgeleitete Klasse |
- Rückgabe
- Die Funktion gibt im Erfolgsfall true (1) zurück, im Fehlerfall false (0). Ein Fehler kann nur auftreten, wenn der Paramater auf NULL zeigt oder der Baum leer ist.
int ppl6::CTree::Num |
( |
| ) |
const |
- Beschreibung:
- Diese Funktion liefert die Anzahl Elemente im Baum zurück.
- Rückgabe
- Anzahl Elemente oder 0, wenn der Baum leer ist. Bei einem leeren Baum wird ausserdem der Fehlercode 347 gesetzt.
void ppl6::CTree::PrintNodes |
( |
CTreeItem * |
node = NULL | ) |
const |
void ppl6::CTree::Reset |
( |
| ) |
|
- Beschreibung:
- Mit dieser Funktion wird der interne Pointer zurückgesetzt, der für die Walk-Funktionen GetNext und GetPrevious verwendet wird.
- Beschreibung:
- Mit dieser Funktion wird der CTreeWalker zurückgesetzt, der für die Walk-Funktionen GetNext und GetPrevious verwendet wird.
void ppl6::CTree::UpDelete |
( |
CTreeItem * |
node | ) |
|
|
private |
void ppl6::CTree::UpInsert |
( |
CTreeItem * |
node | ) |
|
|
private |
int ppl6::CTree::Validate |
( |
| ) |
|
- Beschreibung:
- Diese Funktion kann aufgerufen werden, um die Integrität des Baumes zu überprüfen. Sie hangelt sich durch den kompletten Baum und überprüft für jeden Knoten, ob die Verbindungen (left, right, parent) sowie die Balance in Ordnung sind. Außerdem wird die tatsächliche Anzahl Knoten ermittelt, die mit dem Sollwert übereinstimmen muß.
- Rückgabe
- Wird ein Fehler festgestellt, wird eine Beschreibung auf STDOUT ausgegeben und die Funktion gibt false (0) zurück. Wird kein Fehler festgestellt, gibt die Funktion true (1) zurück.
- Seit
- Die Funktion wurde in Version 6.2.0 eingeführt.
ppl6::CTree::stack_height |
|
private |
Die Dokumentation für diese Klasse wurde erzeugt aufgrund der Dateien:
- /jenkins/jobs/clang_ppl6/workspace/include/ppl6.h
- /jenkins/jobs/clang_ppl6/workspace/src/core/CTree.cpp