C# A*算法的数据结构
退出此链接: 对于给定位图,哪种数据结构最适合跟踪启发式、移动成本以及两者之和?我一直在思考的两个主要问题是SortedSet和SortedList。其他消息来源说使用优先级队列,但据我所知,C#没有优先级队列 因此,需要跟踪的事项包括:C# A*算法的数据结构,c#,data-structures,a-star,sortedlist,sortedset,C#,Data Structures,A Star,Sortedlist,Sortedset,退出此链接: 对于给定位图,哪种数据结构最适合跟踪启发式、移动成本以及两者之和?我一直在思考的两个主要问题是SortedSet和SortedList。其他消息来源说使用优先级队列,但据我所知,C#没有优先级队列 因此,需要跟踪的事项包括: 像素的x和y坐标 移动成本(无对角线) Hueristics(使用曼哈顿距离) 两者之和 节点的父节点 我计划创建一个节点对象,该对象将具有以下内容: 元组(xcoordinate,ycoordinate) 父节点 我应该使用什么样的数据结构?我应该如
- 像素的x和y坐标
- 移动成本(无对角线)
- Hueristics(使用曼哈顿距离)
- 两者之和
- 节点的父节点
- 元组(xcoordinate,ycoordinate)
- 父节点
我应该使用什么样的数据结构?我应该如何组织我的节点以最适合我的需要?使用优先级队列来保存已开发的节点,这些节点比较每个节点的(d+h)以在优先级队列中对它们进行排序。“d”是节点的当前深度,“h”是节点的计算启发式值或估计的未来步骤。我将在C#中实现我自己的堆,并在A*中使用它,因为它最适合这里。您应该阅读以下文章:我将阅读,谢谢!