競技プログラミング用のライブラリ
次のライブラリへ
前のライブラリへ
003-01 .NET6のPriorityQueueクラスクラスの使用例
.NET6のPriorityQueueクラスの使用例です。
C#のソース
using System;
using System.Collections.Generic;
using System.Linq;
class Program
{
static void Main()
{
// コンストラクタの第1引数(構造体)、第2引数(優先度を示すlong型)
var InsPQueue_Arr = new PriorityQueue<PQueue_Arr.PQueueJyoutaiDef, long>();
PQueue_Arr.PQueueJyoutaiDef WillEnqueue;
WillEnqueue.CurrX = 0;
WillEnqueue.CurrY = 0;
WillEnqueue.Val = 0;
InsPQueue_Arr.Enqueue(WillEnqueue, WillEnqueue.Val);
long Cnt = 0;
while (InsPQueue_Arr.Count > 0) {
PQueue_Arr.PQueueJyoutaiDef Dequeued = InsPQueue_Arr.Dequeue();
Console.WriteLine("Dequeueしました");
// エンキューの第1引数(構造体)、第2引数(優先度を示すlong型)
InsPQueue_Arr.Enqueue(WillEnqueue, WillEnqueue.Val);
Console.WriteLine("Enqueueしました");
if (++Cnt == 5) break;
}
}
}
#region PQueue_Arr
// 内部で配列使用の優先度付きキュー (根のValが最小)
internal class PQueue_Arr
{
internal struct PQueueJyoutaiDef
{
internal long CurrX;
internal long CurrY;
internal long Val;
}
}
#endregion