/** * Nodo interno del árbol AVL. */ export interface AVLNode { value: T; left: AVLNode | null; right: AVLNode | null; height: number; } /** * Árbol AVL — árbol binario de búsqueda auto-balanceado. * Garantiza O(log n) en inserción, búsqueda y eliminación independientemente del orden de inserción. * El factor de balance (altura izquierda − derecha) se mantiene entre −1 y 1 en todo momento. * @template T - El tipo de los valores almacenados. */ export declare class AVLTree { #private; root: AVLNode | null; /** * @param comparator - Función de comparación opcional (a, b) => number. * Por defecto usa el operador < para primitivos. */ constructor(comparator?: (a: T, b: T) => number); /** * Inserta un valor en el árbol. * Si el valor ya existe (según el comparador), lo actualiza. */ insert(value: T): void; /** * Busca si un valor existe en el árbol. */ search(value: T): boolean; /** * Elimina un valor del árbol. El árbol se rebalancea automáticamente. * @returns true si el valor existía y fue eliminado, false si no existía. */ delete(value: T): boolean; /** * Retorna el valor mínimo del árbol. */ min(): T | undefined; /** * Retorna el valor máximo del árbol. */ max(): T | undefined; /** * Traversal en orden (izquierda → raíz → derecha). * Retorna los valores en orden ascendente según el comparador. */ inOrder(): T[]; /** * Traversal pre-orden (raíz → izquierda → derecha). */ preOrder(): T[]; /** * Traversal post-orden (izquierda → derecha → raíz). */ postOrder(): T[]; /** * Número de nodos en el árbol. */ get size(): number; /** * Indica si el árbol está vacío. */ isEmpty(): boolean; /** * Vacía el árbol completamente. */ clear(): void; } //# sourceMappingURL=avl-tree.d.ts.map