C ++ Implementierung eines AVL-Baumes, eines selbstausgleichenden binären Suchbaums. Der Code enthält die folgenden Funktionen: Einfügen, Löschen, Suche und Drucken. Es ist voll funktionsfähig und gut gefördert.
Ein AVL-Baum ist ein selbstausgleichender binärer Suchbaum, bei dem sich die Höhe der beiden untergeordneten Unterbäume jedes Knotens höchstens um einen unterscheidet. Diese Implementierung bietet effiziente Methoden zum Einfügen, Löschen, Suchen und Drucken von Elementen im Baum.
Mit der insert können Sie dem AVL -Baum einen neuen Wert hinzufügen und gleichzeitig seine ausgewogene Eigenschaft beibehalten.
// Function
Node * insert (Node *node, int key);
// Example
AVLTree.insert(AVLTree.root, 19 ); Die deleteNode -Funktion entfernt einen Wert aus dem AVL -Baum, falls vorhanden. Diese Operation stellt auch sicher, dass der Baum ausgeglichen bleibt. Wenn der Wert gefunden und entfernt wird, wird die Baumstruktur entsprechend eingestellt.
// Function
Node * deleteNode (Node *root, int key);
// Example
AVLTree.deleteNode(AVLTree.root, 16 ); Die search findet einen Wert in der AVL -Baum und druckt ihren aktuellen Standort, Eltern und Kinder (falls vorhanden). Wenn der Wert an der Wurzel liegt, wird dies angezeigt.
// Function
static void search (Node *root, int key);
// Example
Tree::search (AVLTree.root, 32 );
Die printTree -Funktion gibt die Elemente des AVL -Baums in sortierter Reihenfolge aus.
// Function
void printTree (Node *root, int space);
// Example
AVLTree.printTree(AVLTree.root, 0 );