欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

JS實(shí)現(xiàn)深度優(yōu)先搜索求解兩點(diǎn)間最短路徑

 更新時(shí)間:2019年01月17日 11:19:35   作者:我要瀟瀟灑灑  
這篇文章主要為大家詳細(xì)介紹了JS實(shí)現(xiàn)深度優(yōu)先搜索求解兩點(diǎn)間最短路徑,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家分享了JS實(shí)現(xiàn)深度優(yōu)先搜索求解兩點(diǎn)間最短路徑的具體代碼,供大家參考,具體內(nèi)容如下

效果:

找出圖里點(diǎn)到點(diǎn)最短路徑,并打印軌跡

圖片如下所示:


代碼:

const map = [
  [0, 1, 1, 0, 1],
  [1, 0, 0, 1, 0],
  [1, 0, 0, 0, 1],
  [0, 1, 0, 0, 0],
  [1, 0, 1, 0, 0]
]

function dfsManager(map, start, end){

  var min = 9999,
    path = [],
    unvisited = [];
  for(let i=0; i<5;i++){
    unvisited[i] = true
  }

  (function dfs(map, start, end, step){
    //unvisited[start] = false //不重復(fù)訪問(wèn)最后的節(jié)點(diǎn)
    if(start === end){
      console.log('step:',step)
      for(let i=0; i<path.length; i++){
        if(path[i] >= 0){
          console.log(path[i]+'->')
        }
      }
      if(min > step){
        min = step
      }
      return
    }
    unvisited[start] = false  //要重復(fù)訪問(wèn)最后的節(jié)點(diǎn)
    let len = map.length

    for(let i=0; i<len; i++){
      if(map[start][i] === 1 && unvisited[i]){
        path.push(i)  //記錄路徑
        dfs(map, i, end, step+1)
        path.pop()   //避免污染其他路徑
      }
    }
  })(map, start, end, 0)

  return min
}

console.log('min:',dfsManager(map,3,4))

output:

step: 4
1->
0->
2->
4->
step: 3
1->
0->
4->
min: 3

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

您可能感興趣的文章:

相關(guān)文章

  • javascript中的閉包概念與用法實(shí)踐分析

    javascript中的閉包概念與用法實(shí)踐分析

    這篇文章主要介紹了javascript中的閉包概念與用法,結(jié)合具體實(shí)例形式分析了javascript閉包的概念、原理、使用方法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下
    2019-07-07
  • 淺析js設(shè)置控件的readonly與enabled屬性問(wèn)題

    淺析js設(shè)置控件的readonly與enabled屬性問(wèn)題

    本篇文章是對(duì)js設(shè)置控件的readonly與enabled屬性問(wèn)題進(jìn)行了介紹,需要的朋友可以過(guò)來(lái)參考下,希望對(duì)大家有所幫助
    2013-12-12
  • JS仿QQ好友列表展開、收縮功能(第二篇)

    JS仿QQ好友列表展開、收縮功能(第二篇)

    這篇文章主要介紹了JS仿QQ好友列表展開、收縮功能,當(dāng)點(diǎn)擊一個(gè)li元素,其他li元素上的類名清除掉。代碼簡(jiǎn)單易懂,需要的朋友可以參考下
    2017-07-07
  • 微信小程序之頁(yè)面攔截器的示例代碼

    微信小程序之頁(yè)面攔截器的示例代碼

    本篇文章主要介紹了微信小程序之頁(yè)面攔截器的示例代碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-09-09
  • 微信小程序?qū)崿F(xiàn)watch監(jiān)聽

    微信小程序?qū)崿F(xiàn)watch監(jiān)聽

    這篇文章主要介紹了微信小程序?qū)崿F(xiàn)watch監(jiān)聽,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-06-06
  • JS獲取本地文件并進(jìn)行網(wǎng)絡(luò)傳輸?shù)拇a詳解

    JS獲取本地文件并進(jìn)行網(wǎng)絡(luò)傳輸?shù)拇a詳解

    在web中如想要獲取用戶計(jì)算機(jī)上的文件我們通常會(huì)用到的方法是通過(guò)一個(gè)表單元素<input type="file">操作用戶選擇的文件,本文小編給大家介紹了JS獲取本地文件并進(jìn)行網(wǎng)絡(luò)傳輸?shù)姆椒?需要的朋友可以參考下
    2024-08-08
  • JavaScript 阻止超鏈接跳轉(zhuǎn)的操作方法(多種寫法)

    JavaScript 阻止超鏈接跳轉(zhuǎn)的操作方法(多種寫法)

    很多朋友問(wèn)小編能否通過(guò)JavaScript來(lái)阻止超鏈接的跳轉(zhuǎn)呢,今天給大家通過(guò)多種寫法來(lái)實(shí)現(xiàn)這一功能,具體實(shí)例代碼跟隨小編一起看看吧
    2021-06-06
  • Javascript毫秒數(shù)用法實(shí)例

    Javascript毫秒數(shù)用法實(shí)例

    這篇文章主要介紹了Javascript毫秒數(shù)用法,實(shí)例分析了javascript獲取毫秒數(shù)及設(shè)置指定時(shí)間毫秒數(shù)的方法,需要的朋友可以參考下
    2015-02-02
  • 表格頭固定而列可滾動(dòng)的效果

    表格頭固定而列可滾動(dòng)的效果

    表格頭固定而列可滾動(dòng)的效果...
    2007-11-11
  • JavaScript 拖放效果代碼

    JavaScript 拖放效果代碼

    拖放效果,也叫拖拽、拖動(dòng),學(xué)名Drag-and-drop ,是最常見的js特效之一。 如果忽略很多細(xì)節(jié),實(shí)現(xiàn)起來(lái)很簡(jiǎn)單,但往往細(xì)節(jié)才是難點(diǎn)所在。
    2008-12-12

最新評(píng)論