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

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

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

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

效果:

找出圖里點到點最短路徑,并打印軌跡

圖片如下所示:


代碼:

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 //不重復訪問最后的節(jié)點
    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  //要重復訪問最后的節(jié)點
    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

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

您可能感興趣的文章:

相關文章

  • javascript中的閉包概念與用法實踐分析

    javascript中的閉包概念與用法實踐分析

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

    淺析js設置控件的readonly與enabled屬性問題

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

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

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

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

    本篇文章主要介紹了微信小程序之頁面攔截器的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-09-09
  • 微信小程序實現(xiàn)watch監(jiān)聽

    微信小程序實現(xiàn)watch監(jiān)聽

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

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

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

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

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

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

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

    表格頭固定而列可滾動的效果

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

    JavaScript 拖放效果代碼

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

最新評論