typestar

PriorityQueue en C#

El heap que atiende primero el elemento más urgente.

// una PriorityQueue atiende primero la prioridad más pequeña
var triage = new PriorityQueue<string, int>();
triage.Enqueue("reboot the router", 3);
triage.Enqueue("datacenter on fire", 1);
triage.Enqueue("update the wiki", 9);
triage.Enqueue("rotate the leaked key", 1);

while (triage.TryDequeue(out var task, out var priority))
{
    Console.WriteLine($"p{priority}: {task}");
}

Cómo funciona

  1. Enqueue(item, priority) archiva el trabajo bajo un rango.
  2. TryDequeue devuelve elemento y prioridad juntos.
  3. Aquí dos prioridades iguales comparten el rango 1; los empates no tienen orden fijo.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
11
Caracteres a escribir
377
Tokens
74
Ritmo de tres estrellas
95 tpm

Al ritmo de tres estrellas de 95 tokens por minuto, este intento toma unos 47 segundos.

Escribe este fragmento

Paso 2 de 3 en Más colecciones; paso 11 de 17 en La biblioteca de .NET.

← Anterior Siguiente →