我正在用瓷砖板上实现Dijkstra。我想将所有图块存储在优先级队列中,按照它们与起始位置的距离进行排序。在Java中,这将是:
Queue<Point> pq = new PriorityQueue<Point>(new Comparator() { /* sort by distance from start */ });
C#XNA中的等价物是什么? C#有一个PriorityQueue
类,但这只适用于IComparable
个Point
个对象,{{1}}个对象。
答案 0 :(得分:1)
我认为简单的解决方案是实现自己的类来存储节点并使其具有可比性(通过实现IComparable接口)。
答案 1 :(得分:1)
由于无法从struct Point派生,您可以使用Point作为复合成员来执行IComparable ComparablePoint类的最小实现。