dfs和bfs的應用

2021-08-21 18:12:00 字數 409 閱讀 5553

dfs:能找到可行的路徑,所需時間長,需要標記位置

bfs:能找到最短的路徑,所需空間長,需要出入佇列

兩個搜尋的相同點是都利用了二維陣列的圖,有的時候都用了標記方法。

但是dfs,我覺得沒什麼變化,就這樣了。

但是bfs,

1.可以用stl的queue,但是,沒辦法對付路徑記錄。

2.可以用自己寫的結構體陣列

比如:

struct node

n[max];

然後用bfs的乙個通用模板:

int front=0;

int rear=0;

void bfs(int beginx,int beginy,int endx,int endy)

}

DFS與BFS的應用

題目 給出乙個n m矩陣,矩陣中的元素為0或1,稱位置 x,y 與其上下左右四個位置 x,y 1 x,y 1 x 1,y x 1,y 是相鄰的。如果矩陣中有若干個1是相鄰的 不必兩兩相鄰 那麼稱這些1構成了乙個 塊 求給定的矩陣中 塊 的個數。如 0 1 1 1 0 0 1 0 0 1 0 0 0 ...

bfs和dfs的特點

一 深度優先搜尋 dfs 的特點是 1 深度優先搜尋法有遞迴以及非遞迴兩種設計方法。一般的,當搜尋深度較小 問題遞迴方式比較明顯時,用遞迴方法設計好,它可以使得程式結構更簡捷易懂。當資料量較大時,由於系統堆疊容量的限制,遞迴容易產生溢位,用非遞迴方法設計比較好。2 深度優先搜尋方法有廣義和狹義兩種理...

dfs和bfs的總結

dfs dfs演算法是乙個對連通圖進行遍歷的演算法。它的思想是從乙個被選定的點出發一條路走到底,如果得不到目的解,那就返回到上乙個節點,然後換一條路繼續走到底,直到找到目的解返回或者全部遍歷完返回乙個事先定好的值。dfs一般借用遞迴完成整個演算法的構造。dfs演算法的一般框架經我總結大致為下 int...