#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...