c++代码实现图的DFS遍历

深度优先搜索,从名字上理解,只要存在点和连接的边,就在图中尽可能的深入,一直到从该节点出发的所有的点都被发现为止。一旦节点v的所有处罚边都被发现,然后就回到v的前驱结点,重复操作

#include <iostream>

#include <string.h>

using namespace std;

int Matric[50][50];

int Visited[50];

int vertex,edge;

void DFS(int s);

int main(){

memset(Matric, 0, sizeof(Matric));

memset(Visited, 0, sizeof(Visited));

int begin,head,tail;

cin >> vertex >> edge >> begin;

for(int j=0; j<edge; j++){

cin >> head >> tail;

Matric[head][tail] = 1;

Matric[tail][head] = 1;

}

DFS(begin);

cout << endl;

return 0;

}

void DFS(int s){

Visited[s] = 1;

cout << s <<‘ ‘;

for(int i=1; i<=vertex; i++){

if(Matric[s][i] && !Visited[i])

DFS(i);

}

}

    原文作者:数据结构之图
    原文地址: https://blog.csdn.net/xlk_vector/article/details/50921261
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞