JS中的DFS和BFS

时间:2020-07-30 10:52:40 来源:

【摘要】 JS中的DFS和BFS考必过小编为大家整理了关于JS中的DFS和BFS的信息,希望可以帮助到大家!

JS中的DFS和BFS

标签:==   name   OLE   break   ++   let   深度   style   广度优先   

示例对象:
{
  name: ‘a‘,
  next: [
    {
      name: ‘b‘,
      next: [
        {
          name: ‘d‘,
          next: []
        },
        {
          name: ‘e‘,
          next: []
        }
      ]
    },
    {
      name: ‘c‘,
      next: [
        {
          name: ‘f‘,
          next: []
        },
        {
          name: ‘g‘,
          next: []
        }
      ]
    }
  ]
}
广度优先遍历:

function BFS(obj){
    let list = [obj],
        listTemp = [];
    while(list.length != 0){
      for(let i = 0, len = list.length; i < len; ++i){
        console.log(list[i].name);
        listTemp = [...listTemp, ...list[i].next];
      }
      list = listTemp;
      listTemp = [];
    }
}

深度优先遍历:

function DFS(obj){
    let p = obj,
        p_p = [],
        n = -1;
    while(p != null){
      if(p.is != true){
        console.log(p.name);
        p.is = true;
      }
      let pTemp = null;
      for(let i = 0, len = p.next.length; i < len; ++i){
        if(p.next[i].is != true){
          p_p[n + 1] = p;
          pTemp = p.next[i];
          ++n;
          break;
        }
      }
      p = pTemp;
      if(p == null){
        p = p_p[n];
        --n;
      }
    }
}

 

 
 

JS中的DFS和BFS

标签:==   name   OLE   break   ++   let   深度   style   广度优先   

以上就是JS中的DFS和BFS的内容,更多资讯请及时关注考必过网站,最新消息小编会第一时间发布,大家考试加油!

上一篇      下一篇
前端相关推荐 更多>>
前端热点专题 更多>>
热点问答
国家公务员考试年龄限制是多少 公务员国考和省考考试内容有什么区别 函授大专学历能不能考公务员 国家公务员考试考点能自己选择吗 新闻学专业能报考2022年公务员考试吗 什么是联合培养研究生 什么是破格录取研究生 什么人不适合读研 研究生报名户口所在地填什么 研究生结业和毕业有什么区别
网站首页 网站地图 返回顶部
考必过移动版 https://m.kaobiguo.net