(九)数据结构之“图”
生活随笔
收集整理的這篇文章主要介紹了
(九)数据结构之“图”
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
數據結構之“圖”
- 圖是什么
- 圖的常用操作
- 圖的深度/廣度優先遍歷
- 什么是深度/廣度優先遍歷
- 深度優先遍歷算法口訣
- 廣度優先遍歷算法口訣
- LeetCode:65.有效數字
- LeetCode:417.太平洋大西洋水流問題
- LeetCode:133.克隆圖
- 思考題
圖是什么
- 圖是網絡結構的抽象模型,是一組由邊連接的節點
- 圖可以表示任何二元關系,比如道路、航班…
.
- JS中沒有圖,但是可以用Object和Array構建圖
- 圖的表示法:鄰接矩陣、鄰接表、關聯矩陣…
圖的常用操作
深度優先遍歷
廣度優先遍歷
圖的深度/廣度優先遍歷
const graph = {0: [1, 2],1: [2],2: [0, 3],3: [3] };module.exports = graph;什么是深度/廣度優先遍歷
深度優先遍歷:盡可能深的搜索圖的分支
廣度優先遍歷:先訪問離根節點最近的節點
深度優先遍歷算法口訣
沒訪問過的防止陷入死循環
廣度優先遍歷算法口訣
新建一個隊列,把根節點入隊
把隊頭出隊并訪問
把隊頭的沒訪問過的相鄰節點入隊
重復第二、三步,直到隊列為空
LeetCode:65.有效數字
時間復雜度O(n),n為字符串長度,空間復雜度為O(1)
LeetCode:417.太平洋大西洋水流問題
時間復雜度O(m * n),空間復雜度 O(m * n)
LeetCode:133.克隆圖
法一:深度優先遍歷
時間復雜度O(n),n為圖的節點數,空間復雜度O(n)
法二:廣度優先遍歷
時間復雜度O(n),空間復雜度O(n)
思考題
1、請用圖畫出你的朋友圈,無需Coding
2、請用圖畫出你的偶像的人物關系,無需Coding
總結
以上是生活随笔為你收集整理的(九)数据结构之“图”的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: (八)数据结构之“树”
- 下一篇: (十)数据结构之“堆”