Untitled

mail@pastecode.io avatar
unknown
plain_text
2 years ago
822 B
2
Indexable
#include <stdio.h>
#define MAX_NODES 100

int graph[MAX_NODES][MAX_NODES];
int visited[MAX_NODES];
int n;

void dfs(int node) {
    int i;
    visited[node] = 1;
    printf("%d ", node + 1);

    for (i = 0; i < n; i++) {
        if (graph[node][i] && !visited[i]) {
            dfs(i);
        }
    }
}

int main() {
    int m, i, u, v, start;

    printf("Enter the number of nodes in the graph: ");
    scanf("%d", &n);
    printf("Enter the number of edges in the graph: ");
    scanf("%d", &m);

    for (i = 0; i < m; i++) {
        printf("Enter the start and end nodes of edge %d: ", i + 1);
        scanf("%d%d", &u, &v);
        graph[u - 1][v - 1] = 1;
        graph[v - 1][u - 1] = 1;
    }

    printf("Enter the start node for DFS traversal: ");
    scanf("%d", &start);

    dfs(start - 1);
    return 0;
}