图的深度优先搜索实验

实验内容

1.采用邻接矩阵表示法创建下图并输出它。

2. 对下图进行深度优先搜索遍历(1为起始点)。

#include<stdio.h>
#include<stdlib.h>
#define MaxSize 100

typedef struct 
{
    int vex[MaxSize];
    int acrs[MaxSize][MaxSize];
    int vexnum;
    int acrsnum;

}Graph;


void createGraph(Graph *G) {
    scanf("%d,%d", G->vexnum, G->acrsnum);
    for (int i = 0; i < G->vexnum; i++)
    {
        int e;
        scanf("%d", &e);
        G->vex[i] = e;
    }
    for (int i = 0; i < G->vexnum; i++)
    {
        for (int j = 0; j < G->vexnum; j++)
        {
            G->acrs[i][j] = 0;
        }

    }
    for (int i = 0; i < G->acrsnum; i++)
    {
        int a, b;
        scanf("%d,%d", &a, &b);
        G->acrs[a][b] = 1;
    }
}



void dfs(Graph G,int v,int *flag) {
    flag[v] = 1;
    for (int i = 0; i < G.vexnum; i++)
    {
        if (G.acrs[v][i] == 1 && flag[i] == 0) {
            dfs(G, i,flag);
        }
    }
}

int main() {
    Graph G;
    createGraph(&G);
    int* flag = (int*)malloc(sizeof(int) * G.vexnum);
    for (int i = 0; i < G.vexnum; i++)
    {
        flag[i] = 0;
    }
    int v = 1;
    dfs(G, v, flag);

}

 

 

好了,我们下回见,peace

posted @ 2020-09-28 09:36  野评测  阅读(246)  评论(0编辑  收藏  举报