目标:
最小的时间占用
最小的空间占用
最优的解法
灵活的扩展性
思路:
基本数据结构,
地图
地图标记>标记某位置是否走过
搜索表>顺序存储搜索位置
路径树>以长叶子的方式存放行进路线,最后从叶回根,生成最优解
基本算法,
1把给定的出发点加入搜索表
2开始搜索搜索表,往上下右左搜索
3判断是否可前进(这里可以扩展),若可前进(且末走过,因为若走过,而搜索表是顺序表,再走肯定不是最优角),标记走过,把新位置加入搜索表,把路径加入路径树
4搜索搜索表的下一个位置,直到表空或者结束条件满足
5生成路径,清除算法临时生成的数据
小结:
如此算法,搜索复杂度为地图边长的平方,而无更多余的计算即可保证最优解(因为已经把地图全部算完)
本算法成功用于电子系2007队式设计大赛《电子系的复兴》前两关走地图的本地测试。可灵活修改结束条件和添加设置炸弹等功能。
示例程序不方便公开,感兴趣者可联系我索取。

