本文整理汇总了C#中Heap.PeekData方法的典型用法代码示例。如果您正苦于以下问题:C# Heap.PeekData方法的具体用法?C# Heap.PeekData怎么用?C# Heap.PeekData使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Heap
的用法示例。
在下文中一共展示了Heap.PeekData方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Dijkstra
public static void Dijkstra(List<Tuple<int, int>>[] adj, int source, out int[] dist, out int[] pred)
{
int inf = int.MaxValue;
int N = adj.Length;
dist = new int[N];
pred = new int[N];
for (int i = 0; i < N; i++)
dist[i] = inf;
dist[source] = 0;
Heap<int, int> heap = new Heap<int, int>(N, true);
heap.Push(source, 0);
while (!heap.IsEmpty())
{
int u = heap.PeekData();
if (dist[u] != heap.Pop().Priority) continue;
foreach (var tuple in adj[u])
{
int v = tuple.Item1;
int uvWeight = tuple.Item2;
if (dist[v] > dist[u] + uvWeight)
{
dist[v] = dist[u] + uvWeight;
pred[v] = u;
heap.Push(v, dist[v]);
}
}
}
}