文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>谨记一个容易错的地方

谨记一个容易错的地方

时间:2010-06-06  来源:chenyukang

大半个下午都耗费在这个问题上了,其实很简单,但是很容易乎略。
问题如下:
宽搜的时候定义一个QNd类,表示队列中的节点。

class QNd
{
public:
    int x,y,step;
    QNd(int xx,int yy,int ss)
        {x=xx;y=yy;step=ss;}
};

然后在BFS中写下了这样的代码:

while(!Q.empty())
    {
        QNd node=Q.front();
        Q.pop();
        for(int i=0;i<4;i++)
        {
            int nx=node.x+dir[i][0];
            int ny=node.y+dir[i][1];
            if(valid(nx,ny)&&(!visited[nx][ny]))
            {
                visited[nx][ny]=true;
                 //node.x=nx;
                 //node.y=ny;
                 //node.step++;
                 //Q.push(node); 就错在这个地方 在for(int i=0;i<4;i++)中还用到了node的值,而这里改变了.
                 QNd next(nx,ny,node.step+1);
                 Q.push(next);
            }
        }


谨记谨记。。。

相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载