我的网站开发技术经验总结 我的网站开发技术经验总结
首页

fangdown

我的网站开发技术经验总结
首页
  • 大前端

  • 基础

  • 框架

  • 情商

  • 算法

    • 说说对二分查找的理解
    • 说说对动态规划、分而治之的理解
    • 说说对图的理解
      • 是什么
      • 表达图
        • 邻接矩阵
        • 邻接表
      • 操作
        • 深度
        • 广度
    • 说说对堆的理解
    • 说说对归并排序的理解
    • 说说对快速排序的理解
    • 说说对插入排序的理解
    • 说说对数据结构的理解
    • 说说对栈、队列的理解及应用
    • 说说对树(二叉树)的理解
    • 说说对算法的理解及应用场景
    • 说说对贪心算法,回溯算法的理解
    • 说说对选择排序的理解
    • 说说有哪些排序算法及理解
    • 说说算法复杂度有哪些?
    • 说说对冒泡排序的理解
  • 网络

  • 千锤百炼
  • 算法
fangdown
2021-10-15
目录

说说对图的理解

# 是什么

图: 抽象的数据结构

  • 有向图: 顶点v,w 只能v向w,不能反向, 则v是起始点,w是终点
  • 无向图: 顶点v,w, v到w,和w到v是完全相同的

# 表达图

  • 邻接矩阵
  • 邻接表

# 邻接矩阵

# 邻接表

# 操作

  • 深度优先遍历
  • 广度优先遍历

# 深度

const visited = new Set()
const dfs = (n) => {
  console.log(n)
  visited.add(n) // 访问过添加记录
  graph[n].forEach(c => {
    if(!visited.has(c)){ // 判断是否访问呢过
      dfs(c)
    }
  })
}

# 广度

const visited = new Set()
const dfs = (n) => {
  visited.add(n)
  const q = [n]
  while(q.length){
    const n = q.shift()
    console.log(n)
    graph[n].forEach(c => {
      if(!visited.has(c)){
        q.push(c)  
        visited.add(c)
      }
    })
  }
}
#算法
上次更新: 2021/12/19, 18:05:42
说说对动态规划、分而治之的理解
说说对堆的理解

← 说说对动态规划、分而治之的理解 说说对堆的理解→

最近更新
01
多分支修复撞车的问题
05-01
02
如何成为架构师
01-23
03
服务器部署全过程
11-23
更多文章>
Theme by Vdoing | Copyright © 2019-2026 fangdown | 粤ICP备19079809号
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式