Advertisement
Guest User

Graph

a guest
May 25th, 2015
242
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.73 KB | None | 0 0
  1. package AiSD.Lista11v2;
  2.  
  3. import java.io.File;
  4. import java.io.FileNotFoundException;
  5. import java.util.ArrayList;
  6. import java.util.HashMap;
  7. import java.util.Scanner;
  8.  
  9.  
  10. public class Graph
  11. {
  12.     ArrayList<Vertex> vertexes;
  13.     int amount; //ilość wierzchołków
  14.    
  15.     Graph()
  16.     {
  17.         amount = 0;
  18.         vertexes = new ArrayList<Vertex>();
  19.     }
  20.    
  21.     void load()
  22.     {
  23.         Scanner sc = new Scanner(System.in);
  24.         System.out.println("Put the file path");
  25.         String scan = sc.nextLine();
  26.         try
  27.         {
  28.             File file = new File(scan);
  29.             sc = new Scanner(file);
  30.             while(sc.hasNextLine())
  31.             {
  32.                 String temp = sc.nextLine();
  33.                 String[] temp2 = temp.split(";");
  34.                 int[] temp3 = new int[3];
  35.                 for(int i=0; i<temp2.length; i++)
  36.                 {
  37.                     temp3[i]=Integer.parseInt(temp2[i]);
  38.                 }
  39.                 //algorytm wstawiania do list
  40.                 if(vertexes.isEmpty())
  41.                 {
  42.                     Vertex start = new Vertex(temp3[0]);
  43.                     Vertex end = new Vertex(temp3[1]);
  44.                     start.list.put(end, temp3[2]);
  45.                     vertexes.add(start);
  46.                     vertexes.add(end);
  47.                 }
  48.                 else
  49.                 {
  50.                     if(vertexes.get(vertexes.size()-1).id==temp3[0])
  51.                     {
  52.                         //sprawdzam czy następnik istnieje
  53.                         boolean exists = false;
  54.                         int index = 0;
  55.                         for(int i=0; i<vertexes.size() && !exists; i++)
  56.                         {
  57.                             index = i;
  58.                             exists = vertexes.get(i).id==temp3[1];
  59.                         }
  60.                         if(exists)
  61.                         {
  62.                             vertexes.get(vertexes.size()-1).list.put(vertexes.get(index),temp3[2]);
  63.                         }
  64.                         else
  65.                         {
  66.                             Vertex newVertex = new Vertex(temp3[1]);
  67.                             vertexes.add(newVertex);
  68.                             vertexes.get(vertexes.size()-2).list.put(vertexes.get(vertexes.size()-1),temp3[2]);
  69.                         }
  70.                     }
  71.                     else
  72.                     {
  73.                         Vertex newVert = new Vertex(temp3[0]);
  74.                         vertexes.add(newVert);
  75.                         boolean exists = false;
  76.                         int index = 0;
  77.                         for(int i=0; i<vertexes.size() && !exists; i++)
  78.                         {
  79.                             index = i;
  80.                             exists = vertexes.get(i).id==temp3[1];
  81.                         }
  82.                         if(exists)
  83.                         {
  84.                             vertexes.get(vertexes.size()-1).list.put(vertexes.get(index),temp3[2]);
  85.                         }
  86.                         else
  87.                         {
  88.                             Vertex newVertex = new Vertex(temp3[1]);
  89.                             vertexes.add(newVertex);
  90.                             vertexes.get(vertexes.size()-2).list.put(vertexes.get(vertexes.size()-1),temp3[2]);
  91.                         }
  92.                     }
  93.                    
  94.                 }
  95.             }
  96.         }
  97.         catch(FileNotFoundException e)
  98.         {
  99.             System.out.println("File not found");
  100.         }
  101.     }
  102.    
  103.     void printGraph()
  104.     {
  105.         for(Vertex v:vertexes)
  106.         {
  107.             v.printVertex();
  108.         }
  109.     }
  110.    
  111.    
  112.     public static void main(String[] args)
  113.     {
  114.         Scanner sc = new Scanner(System.in);
  115.         System.out.println("Menu");
  116.         String input = "";
  117.         Graph graph = new Graph();
  118.         while(!input.equals("exit"))
  119.         {
  120.             switch(input)
  121.             {
  122.                 case "":
  123.                     System.out.println("load - loading vertexes and edges from file");
  124.                     System.out.println("available - prints available towns from given town");
  125.                     System.out.println("print - prints graph as a adjacency list");
  126.                     System.out.println("exit - end of program");
  127.                     break;
  128.                 case "load":
  129.                     graph.load();
  130.                     break;
  131.                 case "print":
  132.                     graph.printGraph();
  133.                     break;
  134.                 case "exit":
  135.                     System.out.println("end of program");
  136.                     break;
  137.             }
  138.                         input=sc.nextLine();
  139.         }
  140.            
  141.     }
  142.     }
  143. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement