一般bfs和資料結構中的佇列聯絡比較緊密
1.演算法框架
計算的是迷宮,從起點出發,到達終點,走的步數。
// 計算從起點 start 到終點 target 的最近距離
intbfs
(node start, node target)
}/* 劃重點:更新步數在這裡 */
step++;}
}
2.二叉樹的最小高度(套模板)
二叉樹的最小深度
/**
* definition for a binary tree node.
* public class treenode
* treenode(int val)
* treenode(int val, treenode left, treenode right)
* }*/class
solution
q.offer
(root)
;//新增進去
//因為root本身就是一層,depth初始化為1
int depth =1;
//開始迴圈佇列,知道隊列為空
while
(!q.
isempty()
)//5.到達這裡說明樹還沒有遍歷完畢
if(cur.left != null)
if(cur.right != null)
} depth++
;//上面的for相當於遍歷完一層了
}return depth;
}}
BFS廣度優先搜尋演算法
廣度優先搜尋 bfs 包含一下幾個關鍵點 1.狀態 2.狀態轉移方式 3.有效狀態 4.佇列 5.標記 void bfs 起始點 隊列為空,廣搜結束 看乙個例子 說有一天公主被大魔王抓了,關進了乙個迷宮裡,需要你這位勇士去營救 當然成功了就自然是公升職加薪贏取白富美啦 這個迷宮以二維陣列的形式給出 ...
廣度優先搜尋演算法
廣度優先搜尋 bfs 這個是第乙個研究的課題,廣度優先搜尋也叫寬度優先搜尋,英文為breadth first searth,開始看的時候一頭霧水,基本也能懂大致意思,但是還不是真正的理解,今天又仔細看看,大致理解上又更深了一層吧。下面來總結下,自己的一些體會,以及對它的獨到的理解。大的方面來說它是一...
廣度優先搜尋演算法
在深度優先搜尋中,深度越大的結點越先得到擴充套件。如果把它改為深度越小的結點越先得到擴充套件,就是廣度優先搜尋法。廣度優先搜尋演算法的基本思想 1 建立乙個空的狀態佇列ss 2 建立乙個空的狀態庫sb 3 把初始狀態s 0 存入佇列ss中 4 若佇列狀態是目標狀態,則搜尋成功,演算法執行中止。如該狀...