/** * Cola de prioridad basada en un montículo binario mínimo (Min-Heap). * El elemento con menor valor según el comparador siempre sale primero. * Inserción y extracción en O(log n). * * @template T - El tipo de los valores almacenados. * * @example Min-heap de números (por defecto) * ```ts * const pq = new PriorityQueue() * pq.enqueue(5); pq.enqueue(1); pq.enqueue(3) * pq.dequeue() // → 1 * ``` * * @example FIFO estable entre iguales (stable: true) * ```ts * interface Patient { name: string; priority: number } * const hospital = new PriorityQueue( * (a, b) => a.priority - b.priority, * { stable: true } * ) * hospital.enqueue({ name: 'Ana', priority: 2 }) * hospital.enqueue({ name: 'Luis', priority: 1 }) * hospital.enqueue({ name: 'María', priority: 2 }) * hospital.dequeue()?.name // → 'Luis' (prioridad 1) * hospital.dequeue()?.name // → 'Ana' (prioridad 2, llegó primero) * hospital.dequeue()?.name // → 'María' (prioridad 2, llegó segunda) * ``` */ export declare class PriorityQueue { #private; /** * @param comparator - Función de comparación opcional (a, b) => number. * Negativo = a tiene mayor prioridad; cero = igual; positivo = b tiene mayor prioridad. * Por defecto ordena ascendentemente (min-heap natural). * @param options.stable - Si es true, elementos con igual prioridad salen en orden * de inserción (FIFO). Por defecto false. */ constructor(comparator?: (a: T, b: T) => number, options?: { stable?: boolean; }); /** Returns true if the priority queue was created in stable mode. */ get stable(): boolean; /** * Inserta un valor manteniendo la propiedad del heap. */ enqueue(value: T): void; /** * Elimina y retorna el elemento de mayor prioridad (mínimo por defecto). * En modo stable, desempata por orden de inserción (FIFO). * @returns El elemento, o undefined si la cola está vacía. */ dequeue(): T | undefined; /** * Retorna el elemento de mayor prioridad sin eliminarlo. */ peek(): T | undefined; /** * Indica si la cola está vacía. */ isEmpty(): boolean; /** * Número de elementos en la cola. */ get size(): number; /** * Retorna los elementos en orden interno del heap (no necesariamente ordenados). */ toArray(): T[]; /** * Vacía la cola completamente. */ clear(): void; } //# sourceMappingURL=priority-queue.d.ts.map