js --- 图的深度广度优先遍历

news/2024/7/3 23:15:26

深度优先遍算法口诀

  • 访问根节点
  • 对根节点的没有访问过的降临节点进行深度优先遍历
const graph = {
    0:[1,2],
    1:[2],
    2:[0,3],
    3:[3]
}
const visited = new Set()
const dfs = (n) =>{
    console.log(n)
    visited.add(n)
    graph[n].forEach(c => {
        if (!visited.has(c)){
            dfs(c)
        }
    });
}
dfs(2)//2  0  1  3 

广度优先遍历算法口诀

  • 新建一个队列,把根节点入队
  • 把队头出队并访问
  • 把对头的没有访问过的相邻节点入队
  • 重复第二 三步,直到队列为空
const graph = {
    0: [1, 2],
    1: [2],
    2: [0, 3],
    3: [3]
}
const visited = new Set() //哈希表
visited.add(2)  // 起始点 先添加进验证是否访问过的哈希表
const q = [2]; // 起始点先入队 
while (q.length) {
    const n = q.shift(); // 出队 并访问
    console.log(n)   //  2 0 3 1 
    graph[n].forEach(c => {
        if (!visited.has(c)) {
            q.push(c) //没有访问过的节点 入队 
            visited.add(c); // 访问过的节点进入 哈希表
        }
    });
}

 


http://www.niftyadmin.cn/n/3655825.html

相关文章

西门子Prodave5.5使用说明及VC示例

西门子PLC的通信协议主要是PPI、MPI、Profibus、CP243/CP343/CP443 网络协议,prodave是早期完成的程序接口,除了网络协议外其它的主要协议都支持,SoftNet是西门子最新推出的通信协议接口,稳定,并且大而全,目…

2020-12-18 js 实现堆

堆是什么? 堆是一种特殊的完全二叉树所有的节点都大于等于(最大堆)或小于等于(最小堆)它的子节点。 js 中的堆 js 中通常用数组表示堆左侧子节点的位置是 2 * index 1右侧子节点的位置是2* index 2父节点位置是&am…

VB实现SHELL扩展之接口参数获取失败探析

前几天有位网友问我用VB实现SHELL扩展的问题,这个问题比较有意思,虽然VB较少使用了,但是用VB开发COM组件还是比较方便的(前几天用EVC开发COM组件,相比起来,用VB还是比较幸福的),所以…

js 排序学习

冒泡排序 Array.prototype.bubbleSort function() {// console.log(this)for (let i 0; i < this.length - 1; i) {for(let j 0;j<this.length -1 - i; j1){ // -1 可以用j1来获取 - i是为了缩小循环节省时间if(this[j] > this[j1]){const temp this[j] // …

16进制字符串转数字(C/C++,VB/VB.net,C#)

这个问题看是很简单&#xff0c;但是在不同语言中实现的方式却千差万别&#xff0c;如果不知道方法&#xff0c;还真是麻烦&#xff0c;我就是在C#中遇到该问题&#xff0c;让我费了很大的周折&#xff0c;才在msdn查到。一、16进制字符串转数字1、C/CI、最简单的办法&#xff…

面试题 ---快速排序的空间复杂度是多少?时间复杂度的最好最坏的情况是多少,有哪些优化方案?

Array.prototype.quickSort function() {const rec (arr) >{if(arr.length 1){return arr}// 分别存放 前后的数组const left []const right []// 设置一个基准const mid arr[0]//进行分区for(let i 1; i<arr.length; i1){if(arr[i] < mid){left.push(arr[i])}el…

如何加速XML反序列化(精简框架集2.0SP1,WinCE4.2) -- 寻求微软技术支持记

其实这个问题在2007/3/13 就提交到了微软技术支持&#xff0c;但直到今天&#xff0c;对这个问题还没有一个完美的结果&#xff08;他们最好的建议就是&#xff0c;自己解析XML文件&#xff09;&#xff0c;只好请求微软的技术支持把这个问题close掉。问题的关键在于&#xff1…