首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >寻找指向最短路径的点的坐标

寻找指向最短路径的点的坐标
EN

Stack Overflow用户
提问于 2019-05-29 00:42:44
回答 1查看 0关注 0票数 0

如何轻松显示从Start到最近出口所需的路径?

代码语言:javascript
复制
int BFS(int mat[][COL], Point start, Point door)
{
    //Sprawdza start i wyjscie
    if (!mat[start.x][start.y] || !mat[door.x][door.y])
        return -1;

    bool visited[ROW][COL];
    memset(visited, false, sizeof visited);

    // Odwiedzone
    visited[start.x][start.y] = true;

    queue<queueNode> q;

    queueNode s = {start, 0};
    q.push(s);


    //
    while (!q.empty())
    {
        queueNode curr = q.front();
        Point pt = curr.pt;

        if (pt.x == door.x && pt.y == door.y)
            return curr.dist;
        q.pop();

        for (int i = 0; i < 4; i++)
        {
            int row = pt.x + rowNum[i];
            int col = pt.y + colNum[i];


            if (isValidCell(row, col) && mat[row][col] &&
                    !visited[row][col])
            {
                visited[row][col] = true;
                queueNode Adjcell = { {row, col},
                    curr.dist + 1
                };
                q.push(Adjcell);
            }
        }
    }


    return -1; //can't be reached
}

我试图创建存储被访问单元格坐标的数组,并在上次if遇到其条件时显示行和列:

代码语言:javascript
复制
 cout<<row<<" "<<col;
EN

回答 1

Stack Overflow用户

发布于 2019-05-29 09:56:39

我不太清楚你想要做什么,但是如果你想在图上的点之间找到最短的路径,你可以用Dijkstra's Algorithm.如果这是您想要的,并且您需要更多的实现信息,您可以在Google上搜索“Dijkstra算法c+”,或者在这里对堆栈溢出进行进一步的查询。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100006843

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档