C ++ Реализация дерева AVL, самобалансирующего бинарного дерева поиска. Код включает в себя следующие функции: вставьте, удаляйте, поиск и печати. Он полностью функциональный и хорошо смягченный.
Дерево AVL-это самобалансирующее двоичное дерево поиска, где высота двух детей-подделев каждого узла отличается не более одного. Эта реализация предоставляет эффективные методы для вставки, удаления, поиска и печати элементов в дерево.
Функция insert позволяет добавить новое значение к дереву AVL, сохраняя при этом сбалансированное свойство.
// Function
Node * insert (Node *node, int key);
// Example
AVLTree.insert(AVLTree.root, 19 ); Функция deleteNode удаляет значение из дерева AVL, если оно существует. Эта операция также гарантирует, что дерево остается сбалансированным. Если значение найдено и удалено, структура дерева соответствующим образом корректируется.
// Function
Node * deleteNode (Node *root, int key);
// Example
AVLTree.deleteNode(AVLTree.root, 16 ); Функция search находит значение в дереве AVL и печатает его текущее местоположение, родитель и дети (если есть). Если значение находится в корне, оно укажет это.
// Function
static void search (Node *root, int key);
// Example
Tree::search (AVLTree.root, 32 );
Функция printTree выводит элементы дерева AVL в отсортированном порядке.
// Function
void printTree (Node *root, int space);
// Example
AVLTree.printTree(AVLTree.root, 0 );