数据结构---邻接矩阵的DFS
生活随笔
收集整理的這篇文章主要介紹了
数据结构---邻接矩阵的DFS
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
數據結構—鄰接矩陣的DFS
原理:參考趣學數據結構
代碼:
#include<stdio.h> #include<stdlib.h> #define N 100 #define elemType int //const int MAX_INT = (1 << 31) - 1; //const int MAX_INT = 0X7fffffff; #define INF (((unsigned int)(-1)) >> 1) bool visited[N]; typedef struct GraphMatrix {elemType vNode[N][N];int vNum, eNum; }GraphMatrix; void initGMaxtix(GraphMatrix &G) {//初始化鄰接矩陣printf("輸入頂點數和邊數\n");scanf_s("%d%d", &G.vNum, &G.eNum);for (int i = 0; i < G.vNum; i++) {//初始化鄰接矩陣for (int j = 0; j < G.vNum; j++) {G.vNode[i][j] = INF;}}printf("輸入頂點v1到頂點v2和其邊的權重\n");for (int i = 0; i < G.eNum; i++) {int v1, v2, weights;scanf_s("%d%d%d", &v1, &v2, &weights);G.vNode[v1][v2] = weights;} } void print11(GraphMatrix G) {printf("鄰接矩陣如下:\n");for (int i = 0; i < G.vNum; i++) {for (int j = 0; j < G.vNum; j++) {printf("%d ", G.vNode[i][j]);}printf("\n");} } void DFSMatrixGraph(GraphMatrix G, int u) {//DFS遍歷鄰接矩陣visited[u] = true;printf("%d ", u);for (int i = 0; i < G.vNum; i++) {if (!visited[i] && G.vNode[u][i] < INF) {DFSMatrixGraph(G, i);}} } int main() {GraphMatrix G;initGMaxtix(G);print11(G);printf("\n");for (int i = 0; i < G.vNum; i++) {visited[i] = false;}printf("DFS遍歷鄰接矩陣\n");DFSMatrixGraph(G, 0);printf("\n");system("pause");return 0; }測試截圖:
時間復雜度O(n x n),空間復雜度O(n)
如果存在什么問題,歡迎批評指正!謝謝!
總結
以上是生活随笔為你收集整理的数据结构---邻接矩阵的DFS的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 数据结构---多源最短路径
- 下一篇: 山竹树长什么样子 简述山竹树