1

我正在一块瓷砖上实施 Dijkstra。我想将所有图块存储在优先队列中,按它们与起始位置的距离排序。在 Java 中,这将类似于:

Queue<Point> pq = new PriorityQueue<Point>(new Comparator() { /* sort by distance from start */ });

C# XNA 中的等价物是什么?C# 有一个PriorityQueue类,但它只适用于IComparable对象,而Point对象不是。

4

2 回答 2

1

我认为简单的解决方案是实现自己的类来存储节点并使其具有可比性(通过实现 IComparable 接口)。

于 2010-02-06T21:40:36.817 回答
1

由于您不能从 struct Point 派生,您可以做一个 IComparable ComparablePoint 类的最小实现,将 Point 作为复合成员。

于 2010-02-06T21:48:37.457 回答