dfs——练习demo3(20届周新杰提供)
生活随笔
收集整理的這篇文章主要介紹了
dfs——练习demo3(20届周新杰提供)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
對此二維數組進行深度搜索與廣度搜索,并遍歷結果。
static int[][] nums = { { 0 , 1 , 0 , 0 , 0 , 0 , 0, 1 , 0},{ 1 , 0, 1 ,0 , 1 , 0 , 0 , 0 , 0},{ 0 , 1 , 0 , 1 , 0 ,0 , 0 , 0 , 0},{ 0 , 0 , 1 , 0 , 1 , 1 , 0 , 0 ,0},{ 0 , 1 , 0 , 1 , 0 , 0 , 0 , 0 , 0},{ 0 , 0 , 0 , 1 , 0 , 0 , 1 , 1 , 0},{ 0 , 0 , 0 , 0 , 0 , 1, 0 , 0 , 0},{ 1 , 0 , 0 , 0 , 0 , 1 , 0 , 0 , 1},{ 0 , 0 , 0 , 0 , 0 , 0 , 0 , 1 , 0}};static String res[] = {"1","2","3","4","5","6","7","8","9" };深搜的遍歷過程就是盡可能深的搜索樹的分支,當一個節點的所有子節點都被探尋過了,搜索將回溯到發現該節點的那那條邊的起始節點
這個過程會一直持續到已發現節點可到達所有節點為止。
如果還存在未發現的節點則進程會隨便選擇一個未發現的節點重復以上的過程
整個進程直到所有節點都被訪問過為止。
深搜遍歷過程
從1開始搜索可以看到1的子節點有2、8兩個,進程會依次對其進行深度優先搜索
進程先對2進行子節點的搜索可以看出2也有兩個子節點3、5
然后進程又會對3進行子節點的搜索可以看出只有一個子節點4,而4沒有子節點了這個時候進程就會回溯到2的位置然后對5進行子節點的搜索
可以看出5的子節點也是只有一個4,但是這個時候5還有一個父節點6沒有被訪問所以進程不會回溯到2的位置
而是對6進行子節點的搜索,6的子節點只有一個7這個時候進程又會發現6有父節點8沒有訪問過
所以進程會對8再次再次進行子節點的搜索,發現子節點只有6和9但是6已經訪問過了,而9也沒有子節點
到這里樹的所有節點就完成了全部的探索了
深搜結果
1 2 3 4 5 6 7 8 9總結
以上是生活随笔為你收集整理的dfs——练习demo3(20届周新杰提供)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: bfs——练习demo2(20届周新杰提
- 下一篇: 2022年3月23日15:51:00——