Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- * To change this license header, choose License Headers in Project Properties.
- * To change this template file, choose Tools | Templates
- * and open the template in the editor.
- */
- package fileread;
- import java.io.BufferedReader;
- import java.io.File;
- import java.io.FileNotFoundException;
- import java.io.IOException;
- import java.io.InputStreamReader;
- import java.io.PrintWriter;
- import java.util.ArrayList;
- import java.util.LinkedList;
- import java.util.Queue;
- import java.util.Scanner;
- /**
- *
- * @author Kata
- */
- public class Graphs {
- ArrayList<ArrayList<Integer>> Liste ;
- void df() throws IOException
- {
- PrintWriter writer = new PrintWriter("d:\\df.txt", "UTF-8");
- BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
- System.out.println("Introduceti nr:");
- int n=(Integer.parseInt(br.readLine()));
- Liste = new ArrayList<ArrayList<Integer>>();
- ArrayList<Integer> sLists = new ArrayList<Integer>();
- sLists.add(0);
- Liste.add(sLists);
- File file = new File("d:\\graf.txt");
- int ln=1;
- try {
- Scanner sc = new Scanner(file);
- while (sc.hasNextLine()) {
- String s = sc.nextLine();
- String[] parts = s.split(" ");
- ArrayList<Integer> sList = new ArrayList<Integer>();
- sList.add(ln);
- //listOLists.add(singleList);
- for(int i=0;i<parts.length-1;i++)
- {
- int adjVertex=Integer.parseInt(parts[i]);
- sList.add(adjVertex);
- }
- Liste.add(sList);
- ln++;
- }
- sc.close();
- }
- catch (FileNotFoundException e) {
- e.printStackTrace();
- }
- int VIZ[]=new int[ln];
- int TATA[]=new int[ln];
- bfs(n,VIZ,TATA,writer);
- writer.close();
- }
- void viziteaza(int x,PrintWriter writer)
- {
- System.out.println(x);
- writer.print(x+" ");
- }
- void DF_recursiv(int x,
- int VIZ[],int TATA[],PrintWriter writer) // parcurgerea DF pornind din nodul
- {
- int y;
- viziteaza(x,writer);
- VIZ[x]=1;
- //List l=g[x].adjList;
- //ArrayList<Integer> l1 = new ArrayList<Integer>();
- //l1=listOLists.get(x);
- for (int i = 1; i < Liste.get(x).size(); i++) {
- {
- if(VIZ[Liste.get(x).get(i)]==0)
- {
- TATA[Liste.get(x).get(i)]=x;
- DF_recursiv(Liste.get(x).get(i),VIZ,TATA,writer);
- }
- }
- }
- }
- public void bfs(int x,
- int VIZ[],int TATA[],PrintWriter writer)
- {
- // BFS uses Queue data structure
- Queue queue = new LinkedList();
- queue.add(x);
- //printNode(this.rootNode);
- VIZ[x]=1;
- writer.print(x+" ");
- while(!queue.isEmpty()) {
- int nd= (int)queue.remove();
- int ch;
- for (int i = 1; i < Liste.get(nd).size(); i++) {
- {
- if(VIZ[Liste.get(nd).get(i)]==0)
- {
- writer.print(Liste.get(nd).get(i)+" "+" ");
- System.out.print(Liste.get(nd).get(i)+" ");
- VIZ[Liste.get(nd).get(i)]=1;
- queue.add(Liste.get(nd).get(i));
- //TATA[Liste.get(x).get(i)]=x;
- //DF_recursiv(Liste.get(x).get(i),VIZ,TATA,writer);
- }
- //l=l.next;
- }
- // Clear visited property of nodes
- }
- }
- }
- public static void main(String[] args) throws IOException {
- Graphs gr=new Graphs();
- gr.df();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement