kamasazi99

aiz 7 lab

Nov 25th, 2019
293
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.65 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 javaapplication10;
  7.  
  8. import java.util.ArrayList;
  9. import java.util.List;
  10.  
  11. /**
  12.  *
  13.  * @author Admin
  14.  */
  15. public class JavaApplication10 extends LGraph{
  16.  
  17.     /**
  18.      * @param args the command line arguments
  19.      */
  20.     public static void main(String[] args) {
  21.        JavaApplication10 t=new JavaApplication10();
  22.        t.addVertex(); t.addVertex(); t.addVertex();t.addVertex();t.addVertex();t.addVertex();t.addVertex();
  23.        t.addEdge(1, 2);t.addEdge(2, 4);t.addEdge(3, 2);t.addEdge(2, 5);
  24.        t.writeList();
  25.        //t.writeMatrix();
  26.        //System.out.println(t.sasiedzi(2));
  27.        System.out.println();
  28.        LGraph w=t.transpose();
  29.        //w.writeList();
  30.       t.dfs();
  31.     }
  32.  
  33.     @Override
  34.     public void writeList() {
  35.         for(int i=0;i<iloscWierzcholkow;i++)
  36.         {
  37.             System.out.println("Wierzcholek "+i+": ");
  38.             for(int j=0;j<iloscWierzcholkow;j++)
  39.             {
  40.                 if(check(i,j)==true)
  41.                     System.out.print(j+" ");
  42.            
  43.             }
  44.             System.out.println();
  45.         }
  46.     }
  47.  
  48.     @Override
  49.     public void writeMatrix() {
  50.         for(int i=0;i<iloscWierzcholkow;i++)
  51.         {
  52.                 for(int j=0;j<iloscWierzcholkow;j++)
  53.                 System.out.print(listaSasiedztwa.get(j));
  54.         System.out.println();
  55.         }
  56.            
  57.                
  58.    
  59.    
  60.     }
  61.  
  62.     @Override
  63.     public int addVertex() {
  64.         for(int i=0;i< iloscWierzcholkow;i++)
  65.             listaSasiedztwa.get(i).add(0);
  66.         super.iloscWierzcholkow +=1;
  67.         List<Integer> Lista =new ArrayList<Integer>();
  68.         for(int i=0;i<iloscWierzcholkow;i++)
  69.             Lista.add(0);
  70.         listaSasiedztwa.add(Lista);
  71.        
  72.        
  73.         return super.iloscWierzcholkow;
  74.    
  75.     }
  76.  
  77.     @Override
  78.     public void addEdge(int source, int target) throws IllegalArgumentException {
  79.  
  80.         listaSasiedztwa.get(source).set(target,1);
  81.     }
  82.  
  83.     @Override
  84.     public List<Integer> sasiedzi(int v) throws IllegalArgumentException {
  85.  
  86.     return listaSasiedztwa.get(v);
  87.     }
  88.  
  89.     @Override
  90.     public boolean check(int i, int j) throws IllegalArgumentException {
  91.         if(listaSasiedztwa.get(i).get(j)==1)
  92.             return true;
  93.         else
  94.             return false;
  95.        
  96.    
  97.     }
  98. List<Boolean> visited;
  99.     @Override
  100.     public void dfs() {
  101.  
  102.  
  103.        visited= new ArrayList<Boolean>();
  104.        for(int i=0;i<iloscWierzcholkow;i++)
  105.            visited.add(Boolean.FALSE);
  106.        
  107.         for(int i=1;i<iloscWierzcholkow;i++)
  108.         {
  109.  
  110.                 if(visited.get(i)==false)
  111.                     odwiedzaj(i);
  112.                    
  113.            
  114.         }
  115.        
  116.     }
  117.  
  118.     @Override
  119.     protected void odwiedzaj(int v) {
  120.         visited.set(v,true);
  121.         System.out.println("Odwiedzam :"+v);
  122.         for(int i=0;i<iloscWierzcholkow;i++)
  123.             if(!visited.get(i) && check(v,i))
  124.                 odwiedzaj(i);
  125.     }
  126.  
  127.     @Override
  128.     public LGraph transpose() {
  129.        
  130.         LGraph l=new JavaApplication10();
  131.         //l.iloscWierzcholkow=super.iloscWierzcholkow;
  132.         for(int i=0;i<iloscWierzcholkow;i++)
  133.             l.addVertex();
  134.         for(int i=0;i<iloscWierzcholkow;i++)
  135.             for(int j=0;j<iloscWierzcholkow;j++)
  136.                 if(check(i,j)==true)
  137.                 {
  138.                     l.addEdge(j,i);
  139.                 }
  140.  
  141.        
  142.        
  143.        
  144.         return l;
  145.  
  146.     }
  147.    
  148. }
Add Comment
Please, Sign In to add comment