2021
09-04
09-04
如何用C++实现A*寻路算法
目录一、A*算法介绍二、A*算法步骤解析三、A*算法优化思路3.1、openList使用优先队列(二叉堆)3.2、障碍物列表,closeList使用二维表(二维数组)3.3、深度限制四、A*算法实现(C++代码)一、A*算法介绍寻路,即找到一条从某个起点到某个终点的可通过路径。而因为实际情况中,起点和终点之间的直线方向往往有障碍物,便需要一个搜索的算法来解决。有一定算法基础的同学可能知道从某个起点到某个终点通常使用深度优先搜索(DFS)...
继续阅读 >
目录A*算法简介关键代码介绍保存基本信息的地图类搜索到的节点类算法主函数介绍代码的初始化完整代码A*算法简介A*算法需要维护两个数据结构:OPEN集和CLOSED集。OPEN集包含所有已搜索到的待检测节点。初始状态,OPEN集仅包含一个元素:开始节点。CLOSED集包含已检测的节点。初始状态,CLOSED集为空。每个节点还包含一个指向父节点的指针,以确定追踪关系。A*算法会给每个搜索到的节点计算一个G+H的和值F:F=G+H...