Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- void depth_search(int, const int* , int, int*);
- void print_matrix(const int*, int);
- void print_nodes(int*, int);
- int main()
- {
- int numberOfNodes, x, y;
- int matrix[10][10];
- int nodes[10] = { 0, };
- FILE* in;
- in = fopen("in.txt", "r");
- for (int i = 0; i < 10; i++)
- for (int j = 0; j < 10; j++)
- matrix[i][j] = 0;
- fscanf(in, "%d", &numberOfNodes);
- //arr = (int**)malloc(numberOfNodes*sizeof(int*));
- /*for (int i = 0; i < numberOfNodes; i++)
- {
- arr[i] = (int*)calloc(numberOfNodes, sizeof(int));
- }*/
- while(!feof(in))
- {
- fscanf(in, "%d %d", &x, &y);
- matrix[x-1][y-1] = 1;
- }
- depth_search(0, &matrix[0][0], numberOfNodes, nodes);
- print_nodes(nodes, numberOfNodes);
- print_matrix(&matrix[0][0], numberOfNodes);
- return 0;
- }
- void print_matrix(const int* matrix, int numberOfNodes)
- {
- printf("\n");
- for (int i = 0; i < numberOfNodes; i++)
- {
- for (int j = 0; j < numberOfNodes; j++)
- printf("%d",matrix[i*numberOfNodes + j]);
- printf("\n");
- }
- }
- void depth_search(int node, const int* matrix, int numberOfNodes, int* nodes)
- {
- nodes[node] = 1;
- for (int i = 0; i < numberOfNodes; i++)
- if (matrix[node * numberOfNodes + i] == 1 && nodes[i] == 0)
- {
- depth_search(i, matrix, numberOfNodes, nodes);
- }
- //return;
- }
- void print_nodes(int* nodes, int numberOfNodes)
- {
- printf("\n");
- for (int i = 0; i < numberOfNodes; i++)
- {
- if (nodes[i] == 1)
- printf("%d ", i+1);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement