如上篇部落格所言,最近在學習資料結構中圖的知識。按照書中的講解和偽**,我自己也編輯了個 深度優先搜尋演算法。不過是用遞迴實現的。
1 #include 2執行結果如圖#define max_vertex_num 21
3using
namespace
std;
45 typedef struct
graph
6graph;
1213
void init(graph *g)
1422 g->visited[i] = 0
; 23}24
}25void print(graph *g)
2634 printf("\n"
);35}36
}3738void creat(graph *g)
3951
print(g);52}
5354
void visit(graph *g, int
vex)
5559
60void depthfirstserch(graph *g, int
vex)
616970}
7172
intmain()
73
這個程式驗證了課本中羅列的乙個圖的深度優先遍歷順序。(書中的abcd 均有 1234代替)
深度優先搜尋演算法
include include define vertexnum 9 struct node typedef struct node graph struct node head vertexnum 定義圖形結構 int visited vertexnum 頂點陣列 深度優先搜尋 void dfs ...
深度優先搜尋演算法
今天我們來複習一下萬能的搜尋演算法之深度優先搜尋演算法。深度優先搜尋演算法顧名思義就是按照樹的延伸不停的往下搜尋,直到樹的盡頭之後再一步一步的回溯回來。好吧,我們直接問你乙個問題,給你乙個數n,讓你輸出從1到這個樹的全排列,你會怎麼寫,會不會想到去用若干個for迴圈?好吧,你肯定錯了,其實他考的就是...
深度優先搜尋演算法
1.深度優先搜尋演算法的概念 深度優先搜尋屬於圖演算法的一種,英文縮寫為dfs depth first search.其過程簡要來說是對每乙個可能的分支路徑深入到不能再深入為止,而且每個 節點只能訪問一次。如下例 該圖為乙個無向圖,假設我們從a開始進行深度優先搜尋,第二點可以是b c d中任意乙個,...