DFS 基於鄰接表

2022-07-11 15:54:10 字數 2827 閱讀 3587

#include using namespace std;

#define maxvnum 100 //頂點最大數

bool visited[maxvnum];//訪問標誌陣列,其初值預設為"false"

typedef char vextype; //頂點的資料型別

typedef struct adjnode

adjnode; //鄰接點 結點 結構體

typedef struct

vexnode; //頂點結構體

typedef struct

algraph; //adjacent list graph:圖的鄰接表結構

int locatevex(algraph g, vextype v)

} //沒找到

return -1;

}void insertedge(algraph & g, vextype locv1, vextype locv2)//因為是有向圖,需要插入一條邊

void creategraph(algraph & g)

cout << "請依次輸入每條邊的兩個頂點v1,v2" << endl;

while (g.edgenum--)

else

}}void printgraph(algraph g)

cout << endl; }}

//深度優先遍歷 - 基於鄰接表

void dfs_al(algraph g, int locv)

p = p->next;

}}

void test01()

else

cout << endl;

}

int main()

#include using namespace std;

#define maxvnum 100 //頂點最大數

bool visited[maxvnum];//訪問標誌陣列,其初值預設為"false"

typedef char vextype; //頂點的資料型別

typedef struct adjnode

adjnode; //鄰接點 結點 結構體

typedef struct

vexnode; //頂點結構體

typedef struct

algraph; //adjacent list:鄰接表

int locatevex(algraph g, vextype v)

} //沒找到

return -1;

}void insertedge(algraph & g, vextype locv1, vextype locv2)

void creategraph(algraph & g)

cout << "請輸入每條邊的兩個頂點v1,v2" << endl;

while (g.edgenum--)

else

}}void printgraph(algraph g)

cout << endl; }}

void dfs_am(algraph g, int locv)

p = p->next;

}}

void test01()

else

cout << endl;

}

int main()

#include using namespace std;

#define maxvnum 100 //頂點最大數

bool visited[maxvnum];//訪問標誌陣列,其初值預設為"false"

typedef char vextype; //頂點的資料型別

typedef struct adjnode

adjnode; //鄰接點 結點 結構體

typedef struct

vexnode; //頂點結構體

typedef struct

algraph; //adjacent list graph:圖的鄰接表結構

int locatevex(algraph g, vextype v)

} //沒找到

return -1;

}void insertedge(algraph & g, vextype locv1, vextype locv2)

void creategraph(algraph & g)

cout << "請依次輸入每條邊的兩個頂點v1,v2" << endl;

while (g.edgenum--)

else

}}void printgraph(algraph g)

cout << endl; }}

//深度優先遍歷 - 基於鄰接表

void dfs_al(algraph g, int locv)

p = p->next; }}

//函式過載

void dfs_al(algraph g)//非連通圖,基於鄰接表的深度優先遍歷

}}

void test01()

else

//非連通圖需要查漏點,檢查未被訪問的頂點

dfs_al(g);

cout << endl;

}

int main()

貨員的難題 DFS 鄰接表

time limit 10000ms memory limit 65536k total submit 297 accepted 161 case time limit 5000ms description 某鄉有 n 個村莊 1 n 40 1 n 40 1 n 4 0 有乙個售貨員,他要到各個村莊...

DFS 深度搜尋 基於鄰接列表表示法

2017 07 25 15 38 00 writer pprp 在前一篇圖基於鄰接列表表示法的 加了一小部分,加了乙個dfs函式,visited n 陣列 如下 include using namespace std const int n 9 int visited n 新引入乙個陣列,用於標記是...

資料結構之DFS(鄰接表版)

圖的遍歷 是指從圖中的任一頂點出發,對圖中的所有頂點訪問一次且只訪問一次。圖的遍歷是圖的基本操作之一,很多需要對圖中每個頂點依次進行的操作都可以在遍歷中完成。圖的遍歷通常有深度優先搜尋和廣度優先搜尋。深度優先搜尋 depth first search 深度優先搜尋的基本思想如下 1 從圖中某個頂點v...