Day15:图形搜寻-广度优先搜寻(breadth-first search)

Tree and Graph

在开始今天的主题之前,要先来浅谈Tree跟Graph。什麽是Tree?

Tree

  1. Tree 是一种特定的Graph,没有Loop
  2. Tree 只有唯一的Root

https://ithelp.ithome.com.tw/upload/images/20210915/20128286xmJogb4Dci.png

Graph

  1. Graph是一种抽象资料类型
  2. Graph是一个有限集合
  3. 点跟点相连的线称为「edges」,edges分为有方向性(Directed Graph)或无方向性(Undirected Graph)

有向图(Directed Graph)

有向图顾名思义是在图形中表示某个边的单边通行,有时候会在边上加上权重。实际应用於网页连结等等。

https://ithelp.ithome.com.tw/upload/images/20210915/20128286LxIwvv25ap.png

无向图(Undirected Graph)

无向图跟有向图差别在没有方向,但也可以设定权重。

https://ithelp.ithome.com.tw/upload/images/20210915/20128286Z9Pd8vTZPM.png

广度优先搜寻(breadth-first search(BFS))

最初假设自己在某个顶点(称为起点)。目的是从起点经由边搜寻顶点,直到找到目标顶点。抵达顶点时,可以判定这个顶点是否为目标顶点,广度优先搜寻在搜寻顶点时,优先搜寻离起点较近的顶点

顶点选项:「先进先出」(FIFO),所以可以用「伫列」的资料结构

有可能是封闭回圈(closed circuit),也就是回圈上起点和终点在同一个路径的状态,若非封闭回圈形式,则称为「树」(tree)


<<:  [Day 1] 为啥选择Vue.js咧???

>>:  JavaScript 魔法入门 - 前言

Day 30 - Occurrences After Bigram

大家好,我是毛毛。ヾ(´∀ ˋ)ノ 来到30天的最後一天解题Day啦~ 1078. Occurren...

前端工程师也能开发全端网页:挑战 30 天用 React 加上 Firebase 打造社群网站|Day24 修改会员密码

连续 30 天不中断每天上传一支教学影片,教你如何用 React 加上 Firebase 打造社群...

day 21 - NSQ Producer

Producer是讯息发送方, 他会对nsqd发送讯息, nsqd支援TCP(port:4150) ...

Vue 如何在 LocalHost 开发环境时使用 HTTPS

如果你有 Localhost 开发环境需要以 HTTPS 浏览时,可以参考以下方法: 方法一:vue...

Day 8 python类别

今天我们要介绍的是python的类别,所谓的类别就是指将方法变数或物件建成一个群组,里面会有需要用到...