Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.io.File;
- import java.io.FileNotFoundException;
- import java.util.Scanner;
- /**
- * @author Mohammed Julfikar Ali Mahbub
- */
- public class Task01 {
- public static void main(String[] args) {
- File file = new File(System.getProperty("user.dir") + "/src/Graph.txt");
- Scanner sc = null;
- try {
- sc = new Scanner(file);
- } catch (FileNotFoundException fnfe) {
- System.out.println("File not found: " + fnfe.getMessage());
- }
- int n = sc.nextInt(), e = sc.nextInt();
- Graph graph = new Graph(n);
- for (int edge = 0; edge < e; edge++) {
- int a = sc.nextInt(), b = sc.nextInt();
- graph.join(a, b);
- }
- graph.findSolution();
- }
- }
- class Graph {
- Vertex[] list;
- int[][] matrix;
- int size;
- public Graph(int size) {
- if (size > 500) {
- size = 500;
- }
- size++;
- list = new Vertex[size];
- matrix = new int[size][size];
- for (int i = 0; i < size; i++) {
- create();
- }
- }
- public void create() {
- list[size++] = new Vertex();
- }
- public void join(int start, int end) {
- matrix[start][end] = 1;
- }
- public void findSolution() {
- int[] disc = new int[list.length - 1];
- int[] proc = new int[list.length - 1];
- int[] idx = new int[2];
- DFS_Visit(1, disc, proc, idx);
- System.out.println("Discovered Nodes:");
- for (int i = 0; i < disc.length - 1; i++) {
- System.out.print(disc[i] + ", ");
- }
- System.out.println(disc[disc.length - 1]);
- System.out.println("\nProcessed Nodes:");
- for (int i = 0; i < disc.length - 1; i++) {
- System.out.print(proc[i] + ",0 ");
- }
- System.out.println(proc[proc.length - 1]);
- reset();
- }
- public void DFS_Visit(int id, int[] disc, int[] proc, int[] idx) {
- list[id].visit();
- disc[idx[0]++] = id;
- for (int i = 0; i < list.length; i++) {
- if (matrix[id][i] == 1 && !list[i].visited) {
- DFS_Visit(i, disc, proc, idx);
- }
- }
- proc[idx[1]++] = id;
- }
- public void reset() {
- for (Vertex v : list) v.reset();
- }
- }
- class Vertex {
- boolean visited;
- public void visit() {
- visited = true;
- }
- public void reset() {
- visited = false;
- }
- public String toString() {
- return String.valueOf(visited);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement