Advertisement
kamasazi99

aiz lab 8

Dec 1st, 2019
247
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.69 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. package lab8;
  7.  
  8. import java.util.ArrayList;
  9. import java.util.List;
  10. import java.util.logging.Level;
  11. import java.util.logging.Logger;
  12.  
  13. /**
  14.  *
  15.  * @author Hubert
  16.  */
  17. public class Lab8 implements IWGraph{
  18.  
  19. int [][] lista;
  20.  
  21.     public static void main(String[] args) throws Exception {
  22.         Lab8 l =new Lab8();
  23.         l.addVertices(7);
  24.        
  25.        
  26.        
  27.        
  28.        
  29.   l.addEdge(1,2,2);l.addEdge(1,3,4);
  30.     l.addEdge(2,5,4);
  31.      l.addEdge(3,5,3);l.addEdge(3,4,2);
  32.     l.addEdge(4,1,1);l.addEdge(4,6,2);
  33.    l.addEdge(6,2,3);l.addEdge(6,5,1);
  34.         l.writeGraph();
  35.         l.ford(1);
  36.     }
  37.  
  38.     @Override
  39.     public void addVertices(int i) throws Exception {
  40.         lista =new int [i][i];
  41.         for(int a=0;a<i;a++)
  42.             for(int j=0;j<i;j++)
  43.                 lista[a][j]=INFTY;
  44.    
  45.     }
  46.  
  47.     @Override
  48.     public void addEdge(int start, int stop, int weight) throws Exception {
  49.         lista[start][stop]=weight;
  50.    
  51.     }
  52.  
  53.     @Override
  54.     public int wCheck(int start, int stop) throws Exception {
  55.         return lista[start][stop];
  56.  
  57.     }
  58.  
  59.     @Override
  60.     public void writeGraph() {
  61.         for(int i=0;i<lista.length;i++){
  62.         System.out.println("Wartosci dla "+i);
  63.         for(int j=0;j<lista.length;j++)
  64.         {    
  65.             try {
  66.                 if(wCheck(i,j)!=INFTY)
  67.                     System.out.print(j+" ");
  68.                     }
  69.             catch (Exception ex) {
  70.                 Logger.getLogger(Lab8.class.getName()).log(Level.SEVERE, null, ex);
  71.             }
  72.            
  73.         }
  74.         System.out.println();
  75.    
  76.        
  77.     }
  78.        
  79.     }
  80.  
  81.     @Override
  82.     public void ford(int start) throws Exception {
  83.         int [] Drogi =new int[lista.length];
  84.         int [] cofanie =new int[lista.length];
  85.         for(int i=0;i<lista.length;i++)
  86.         {
  87.         Drogi[i]=wCheck(start,i);
  88.         cofanie[i]=-1;
  89.         }
  90.         Drogi[start]=0;
  91.        
  92.         for(int a=0;a<lista.length;a++){
  93.             for(int i=0;i<lista.length;i++){
  94.                 for(int y=0;y<lista.length;y++){  
  95.                     if(wCheck(i, y) != INFTY){
  96.                         if(Drogi[y]>(Drogi[i]+wCheck(i,y)) ){
  97.                             Drogi[y]=Drogi[i]+wCheck(i,y);
  98.                             cofanie[y]=i;
  99.                        
  100.                         }//if 1
  101.                    
  102.                     }//if2
  103.                    
  104.                    
  105.                
  106.                 }//y
  107.             }//i
  108.         }//
  109.    
  110.         for(int i=0;i<lista.length;i++)
  111.         {
  112.             System.out.println("Dla "+i+" dlugosc : "+Drogi[i]);
  113.             int cofanie_pomoc = cofanie[i];
  114.             System.out.println("poprzednik "+i);
  115.             while(cofanie_pomoc != start){    
  116.                if(cofanie_pomoc != -1){
  117.                  System.out.println("poprzednik "+cofanie_pomoc);
  118.                  cofanie_pomoc = cofanie[cofanie_pomoc];
  119.                }
  120.                else cofanie_pomoc = start;
  121.             }
  122.             System.out.println("poprzednik "+start);
  123.        
  124.        
  125.         }
  126.    
  127.     }
  128.  
  129.     @Override
  130.     public void dijkstra(int start) throws Exception {
  131.         throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
  132.     }
  133.  
  134.     @Override
  135.     public void SSS() {
  136.         throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
  137.     }
  138.  
  139.  
  140. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement