统计

  • 随笔 - 50
  • 文章 - 42
  • 评论 - 147
  • 引用 - 0

留言簿(6)

随笔分类

文章分类

Link

搜索

  •  

积分与排名

  • 积分 - 155498
  • 排名 - 161

最新评论

阅读排行榜

评论排行榜

A*算法实现

根据前一篇文章描述实现的A*算法
发现这个程序的难点是在数据结构的设计上:

地图 . 表示可通过,x表示不可通过,@表示路径
原地图:起始点(10,0),目的点(39,19)

以下为边角可穿透规则下的路径

以下为边角不可穿透规则下的路径


文件下载


题外话:
发现在C++primer上的程序没有经过验证
写标准输入排错的时候参考了一下c++primer中的代码
if(cin.fail())
{
    
if (cin.bad())
    
{
        
throw runtime_error("IO stream corrupt");
    }

    
if (cin.fail())
    
{
        cerr
<<"invalide input type,pls stick to the note!!!"<<endl;
        cin.clear();
        
continue;
    }

}
结果,一遇到非法输入就死循环,后来想想可能是输入缓冲区没有清空的缘故,就在clear后加了一句cin.ignore();
everything is OK
看来老外的书也没有想象中那么严谨。。。。。

posted on 2009-08-14 17:43 pear_li 阅读(1972) 评论(1)  编辑 收藏 引用 所属分类: C++ Algorithm

评论

# re: A*算法实现 2009-08-15 11:34 99读书人

写的很好
  回复  更多评论    

只有注册用户登录后才能发表评论。
【推荐】超50万行VC++源码: 大型组态工控、电力仿真CAD与GIS源码库
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理