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
Enqueue(item, priority)archiva el trabajo bajo un rango.TryDequeuedevuelve elemento y prioridad juntos.- Aquí dos prioridades iguales comparten el rango 1; los empates no tienen orden fijo.
Palabras clave y builtins usados aquí
intnewoutstringvarwhile
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.
Paso 2 de 3 en Más colecciones; paso 11 de 17 en La biblioteca de .NET.