Advertisement
Guest User

Untitled

a guest
Oct 31st, 2014
129
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.81 KB | None | 0 0
  1. /*
  2. * To change this license header, choose License Headers in Project Properties.
  3. * To change this template file, choose Tools | Templates
  4. * and open the template in the editor.
  5. */
  6.  
  7. package fileread;
  8.  
  9. import java.io.BufferedReader;
  10. import java.io.File;
  11. import java.io.FileNotFoundException;
  12. import java.io.IOException;
  13. import java.io.InputStreamReader;
  14. import java.io.PrintWriter;
  15. import java.util.ArrayList;
  16. import java.util.LinkedList;
  17. import java.util.Queue;
  18. import java.util.Scanner;
  19.  
  20. /**
  21. *
  22. * @author Kata
  23. */
  24.  
  25. public class Graphs {
  26. ArrayList<ArrayList<Integer>> Liste ;
  27.  
  28.  
  29. void df() throws IOException
  30. {
  31. PrintWriter writer = new PrintWriter("d:\\df.txt", "UTF-8");
  32. BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
  33. System.out.println("Introduceti nr:");
  34. int n=(Integer.parseInt(br.readLine()));
  35.  
  36. Liste = new ArrayList<ArrayList<Integer>>();
  37.  
  38. ArrayList<Integer> sLists = new ArrayList<Integer>();
  39. sLists.add(0);
  40. Liste.add(sLists);
  41.  
  42.  
  43. File file = new File("d:\\graf.txt");
  44. int ln=1;
  45.  
  46.  
  47. try {
  48.  
  49. Scanner sc = new Scanner(file);
  50.  
  51. while (sc.hasNextLine()) {
  52. String s = sc.nextLine();
  53. String[] parts = s.split(" ");
  54. ArrayList<Integer> sList = new ArrayList<Integer>();
  55.  
  56. sList.add(ln);
  57. //listOLists.add(singleList);
  58. for(int i=0;i<parts.length-1;i++)
  59. {
  60. int adjVertex=Integer.parseInt(parts[i]);
  61. sList.add(adjVertex);
  62.  
  63. }
  64. Liste.add(sList);
  65.  
  66. ln++;
  67.  
  68. }
  69.  
  70.  
  71.  
  72. sc.close();
  73. }
  74. catch (FileNotFoundException e) {
  75. e.printStackTrace();
  76. }
  77. int VIZ[]=new int[ln];
  78. int TATA[]=new int[ln];
  79.  
  80. bfs(n,VIZ,TATA,writer);
  81. writer.close();
  82.  
  83. }
  84. void viziteaza(int x,PrintWriter writer)
  85. {
  86. System.out.println(x);
  87. writer.print(x+" ");
  88. }
  89. void DF_recursiv(int x,
  90. int VIZ[],int TATA[],PrintWriter writer) // parcurgerea DF pornind din nodul
  91. {
  92. int y;
  93. viziteaza(x,writer);
  94. VIZ[x]=1;
  95. //List l=g[x].adjList;
  96. //ArrayList<Integer> l1 = new ArrayList<Integer>();
  97. //l1=listOLists.get(x);
  98. for (int i = 1; i < Liste.get(x).size(); i++) {
  99. {
  100. if(VIZ[Liste.get(x).get(i)]==0)
  101. {
  102. TATA[Liste.get(x).get(i)]=x;
  103. DF_recursiv(Liste.get(x).get(i),VIZ,TATA,writer);
  104.  
  105. }
  106.  
  107.  
  108. }
  109.  
  110.  
  111.  
  112.  
  113. }
  114. }
  115. public void bfs(int x,
  116. int VIZ[],int TATA[],PrintWriter writer)
  117. {
  118. // BFS uses Queue data structure
  119. Queue queue = new LinkedList();
  120. queue.add(x);
  121. //printNode(this.rootNode);
  122. VIZ[x]=1;
  123. writer.print(x+" ");
  124.  
  125. while(!queue.isEmpty()) {
  126. int nd= (int)queue.remove();
  127. int ch;
  128.  
  129.  
  130. for (int i = 1; i < Liste.get(nd).size(); i++) {
  131. {
  132. if(VIZ[Liste.get(nd).get(i)]==0)
  133. {
  134. writer.print(Liste.get(nd).get(i)+" "+" ");
  135.  
  136. System.out.print(Liste.get(nd).get(i)+" ");
  137. VIZ[Liste.get(nd).get(i)]=1;
  138. queue.add(Liste.get(nd).get(i));
  139.  
  140. //TATA[Liste.get(x).get(i)]=x;
  141. //DF_recursiv(Liste.get(x).get(i),VIZ,TATA,writer);
  142.  
  143. }
  144.  
  145. //l=l.next;
  146. }
  147. // Clear visited property of nodes
  148. }
  149. }
  150. }
  151.  
  152. public static void main(String[] args) throws IOException {
  153. Graphs gr=new Graphs();
  154. gr.df();
  155.  
  156.  
  157. }
  158.  
  159. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement