寻路,经典A星算法(A*):
1。采用静态内存方案,寻路过程不会出现动态内存分配,杜绝内存泄漏的可能
2。CloseList采用直接寻址方式实现
3。OpenList采用优化过的遍历查找插入算法,实现简单高效。如果哪位有二叉堆实现了,帮忙对比测试一下
4。纯C风格,没有采用STL等高级数据类型,保证执行效率和移植性
5。有简单的路径平衡处理,效果还不错
6。对外接口简单,只有三个函数
7。目前只实现了0/1二元化路径,要支持多值化应该也很容易修改,估计也就修改是G/H值的计算
在VS2005下可以编译运行通过,2个文件FindPath.h FindPath.cpp, 应该可以在Linux下编译
本算法参考了 Panic 对 Patrick Lester 的翻译: http://blog.vckbase.com/panic/archive/2005/03/20/3778.html
有Bug或建议,请E-MAIL:zhengyinhe@163.com
1