RobotNet/RobotNet.RobotManager/Services/Planner/PriorityQueue.cs
2025-10-15 15:15:53 +07:00

24 lines
528 B
C#

namespace RobotNet.RobotManager.Services.Planner;
public class PriorityQueue<T>(Comparison<T> comparison)
{
public List<T> Items => items;
private readonly List<T> items = [];
public void Enqueue(T item)
{
items.Add(item);
items.Sort(comparison);
}
public T Dequeue()
{
if (items.Count == 0) throw new InvalidOperationException("Queue is empty");
var item = items[0];
items.RemoveAt(0);
return item;
}
public int Count => items.Count;
}