深度優先搜尋演算法的實踐

2022-08-25 21:00:37 字數 846 閱讀 8898

如上篇部落格所言,最近在學習資料結構中圖的知識。按照書中的講解和偽**,我自己也編輯了個 深度優先搜尋演算法。不過是用遞迴實現的。

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中任意乙個,...