跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 求助大佬们一个路径规划的问题
未分類
8 5 月 2020

求助大佬们一个路径规划的问题

求助大佬们一个路径规划的问题

資深大佬 : Timefly 12

原数据结构 [ { from:a, to:b }, {from: b, to: c} , {from: a, to: d}, {from: c, to: d}, { from:c, to :a }, {from:a , to: a}]

现在需要求起始点 a 到 目标点 d , 所有的路径数据 ,类似 结果 : [ [ a,b,c,d ], [a,d] ]
数据中可能会有环的情况 {from:a , to: a}
技术栈是 javascript
用深度优先递归遍历了, 但是遍历的路径总有些问题,不知道写法有什么不对 , 第一次发帖不知道怎么贴图, 求大佬帮助,给个思路或者解答

大佬有話說 (9)

  • 資深大佬 : also24

    『遍历的路径总有些问题』 具体是什么问题?

    是否正确处理了成环的情况?
    [ab, bc, ac, cd]
    [a, b, c, a, b, c, d]

  • 主 資深大佬 : Timefly

    @also24 目前我吧环的数据过滤掉了, 具体主要是路径保存问题,我用 childPaths=[ ]保存遍历路径, 深度递归到一个终点不是 目标值 d 的时候,就从 childPaths 中 pop 推出最后一个,理论上感觉没啥问题,但是结果保存了未指向 d 的路径记录,明天看看怎么贴图大佬看下, 或者大佬能给个大概写法不

  • 資深大佬 : also24

    @Timefly #2
    还是贴代码和样例直观一些。

  • 主 資深大佬 : Timefly

    密码忘了,图床链接放不上来, 尴尬

  • 主 資深大佬 : Timefly

    @also24 图床放里了, 回复链接要验证手机号,密码我给忘了

  • 資深大佬 : also24

    @Timefly #5
    啊,JS 我不熟…… 大概看思路没感觉到太大问题,贴下文本单步调一下看看。

    https://gist.github.com/

    https://pastebin.com/

    https://paste.ubuntu.com/

  • 主 資深大佬 : Timefly

    @also24 ://gist.github.com/ironmancaijian/fe60d1edf9d11d8b5a0288aaafe4e5bc 贴好了大佬,麻烦大佬了

  • 資深大佬 : also24

    @Timefly #7
    我看了一下,大概看到两个问题
    1 、你的 47 行 dfs(nextData …..) 这里,传入的 nextData,里面的 isVisit 似乎没有做处理,这导致 a->h->d->e 这条路径跑不出来。

    2 、我只看到你标记了已被使用的路径,但是似乎没有处理重复使用的点,这样还是存在成环的可能,建议用一个 map 直接把已经走过的点存起来,这样就可以不用标记路径的 isVisit 了。

    比如说在这样的情况下:
    a->b, b->c , c->a

    虽然没有走重复路径,但是 a 点被走了两次,实际上已经成环了。

  • 主 資深大佬 : Timefly

    @also24 刚看到,已经解决了,其实是边界条件没处理好,第一点就是 在 for 循环结束的时候, 需要执行 childRes.pop() 从 childRes 中推出一条记录, 不然会叠加无用记录, 第二点就是这个 isVisit 的问题, 代码 39 行已经过滤了 isVisit 的数据了, 但是需要多排除掉 a ->b b->a 的情况, 非常感谢大佬的回复~

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具