Advertisement
niske

Ulica (Bakurski)

May 8th, 2024 (edited)
1,036
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.98 KB | None | 0 0
  1. public class ListaListi{
  2.    
  3.     public static void main (String[] args) {
  4.        
  5.         Ulica Silerova = new Ulica();
  6.         Silerova.dodajKucu(3);
  7.         Silerova.dodajKucu(1);
  8.        
  9.         Silerova.dodajKucu(7);
  10.         Silerova.dodajKucu(5);
  11.         Silerova.dodajKucu(9);
  12.        
  13.         Silerova.dodajOsobu(1, "Dusan");
  14.         Silerova.dodajOsobu(1, "Olivera");
  15.         Silerova.dodajOsobu(1, "Nebojsah");
  16.        
  17.         Silerova.dodajOsobu(3, "Jovicaa");
  18.         Silerova.dodajOsobu(3, "Nemanjaaaaaa");
  19.        
  20.         Silerova.dodajOsobu(5, "Srdjan");
  21.         Silerova.dodajOsobu(5, "Srdjan");
  22.         Silerova.dodajOsobu(5, "Srdjan");
  23.         Silerova.dodajOsobu(5, "Srdjan");
  24.        
  25.         Silerova.dodajOsobu(7, "Niske");
  26.         Silerova.dodajOsobu(7, "Bodji");
  27.        
  28.         Silerova.najviseStanovnika(3);
  29.        
  30.        
  31.         System.out.println(Silerova);
  32.        
  33.         Silerova.prebaci(1, 9);
  34.         Silerova.prebaci(7, 123);
  35.        
  36.         System.out.println(Silerova);
  37.     }
  38. }
  39.  
  40. class Ulica{
  41.    
  42.     // Klasa Osoba
  43.     class Osoba{
  44.         String ime;
  45.         Osoba veza;
  46.    
  47.         public Osoba(String ime){
  48.             this.ime = ime;
  49.             this.veza = null;
  50.         }
  51.        
  52.         public String toString(){
  53.             return ime;
  54.         }
  55.     }
  56.    
  57.     //Klasa Kuca
  58.     class Kuca{
  59.         int broj;
  60.         Kuca veza;
  61.         Osoba sadrzaj;
  62.        
  63.         public Kuca(int broj){
  64.             this.broj = broj;
  65.             this.veza = null;
  66.             this.sadrzaj = null;
  67.         }
  68.        
  69.         public String toString(){
  70.             String s = "Kuca broj " + broj + ":";
  71.             Osoba tek = sadrzaj;
  72.            
  73.             if(tek == null){
  74.                 s += " je prazna.";
  75.             } else {
  76.                 s += " " + tek;
  77.                 tek = tek.veza;
  78.                
  79.                 while(tek != null){
  80.                     s += ", " + tek;
  81.                     tek = tek.veza;
  82.                 }
  83.             }
  84.            
  85.             return s;
  86.         }
  87.     }
  88.    
  89.     Kuca prvaKuca;
  90.    
  91.     // Metode za ulicu
  92.     public boolean postojiKuca(int broj){
  93.         Kuca tek = prvaKuca;
  94.        
  95.         while(tek != null){
  96.             if(tek.broj == broj){
  97.                 return true;
  98.             }
  99.            
  100.             tek = tek.veza;
  101.         }
  102.        
  103.         return false;
  104.     }
  105.    
  106.    
  107.     public void dodajKucu(int broj){
  108.         if(!postojiKuca(broj)){
  109.             Kuca tek = prvaKuca;
  110.            
  111.             if(prvaKuca == null || broj < prvaKuca.broj){
  112.                
  113.                 prvaKuca = new Kuca(broj);
  114.                 prvaKuca.veza = tek;
  115.                 return;
  116.             }
  117.            
  118.             while(tek.veza != null){
  119.                
  120.                 if(broj < tek.veza.broj)
  121.                     break;
  122.                    
  123.                 tek = tek.veza;
  124.                
  125.             }
  126.             // 1 3 [5] (7) 9
  127.             Kuca sledeca = tek.veza;
  128.             Kuca nova = new Kuca(broj);
  129.             tek.veza = nova;
  130.             nova.veza = sledeca;
  131.         }
  132.     }
  133.  
  134.     public void dodajOsobu(int brojKuce, String ime){
  135.         Kuca tek = prvaKuca;
  136.         while(tek != null && postojiKuca(brojKuce)){
  137.             if(tek.broj == brojKuce){
  138.                 Osoba tekOsoba = tek.sadrzaj;
  139.                 tek.sadrzaj = new Osoba(ime);
  140.                 tek.sadrzaj.veza = tekOsoba;
  141.                
  142.             }
  143.             tek = tek.veza;
  144.         }
  145.     }
  146.    
  147.     public void najviseStanovnika(int N){
  148.         int brKuceMax = prvaKuca.broj;
  149.         int pomocna = 0;
  150.         int brojac = 0;
  151.        
  152.         Kuca tek = prvaKuca;
  153.        
  154.         if(prvaKuca == null){
  155.             return;
  156.         }
  157.        
  158.         while(tek != null){
  159.             Osoba tekOsoba= tek.sadrzaj;
  160.             while(tekOsoba != null){
  161.                 if(tekOsoba.ime.length() > N)
  162.                     brojac++;
  163.                
  164.                 tekOsoba = tekOsoba.veza;
  165.             }
  166.            
  167.             if(brojac > pomocna){
  168.                 pomocna = brojac;
  169.                 brKuceMax = tek.broj;
  170.             }
  171.             tek = tek.veza;
  172.             brojac = 0;
  173.         }
  174.        
  175.         System.out.println("Kuca sa imenima vecim od broja N: " + N + " je " + brKuceMax);
  176.     }
  177.    
  178.     public void prebaci(int A, int B){
  179.         if(postojiKuca(A)){
  180.             Kuca tek = prvaKuca;
  181.            
  182.             while(tek != null){
  183.                 if(tek.broj == A){
  184.                     break;
  185.                 }
  186.                 tek = tek.veza;
  187.             }
  188.            
  189.             Osoba tekOsoba = tek.sadrzaj;
  190.             Osoba prethodni = null;
  191.            
  192.             while(tekOsoba.veza != null){
  193.                 //System.out.println(tekOsoba.ime);
  194.                 prethodni = tekOsoba;
  195.                 tekOsoba = tekOsoba.veza;
  196.             }
  197.            
  198.            
  199.             Osoba pomocna = tekOsoba;
  200.             prethodni.veza = null;
  201.            
  202.             if(postojiKuca(B)){
  203.                 dodajOsobu(B, pomocna.ime);
  204.             }
  205.            
  206.            
  207.         }
  208.     }
  209.     //-----------------------------------
  210.    
  211.  
  212.     // Ispis cele ulice
  213.     public String toString(){
  214.         String s = "Ulica: ";
  215.         Kuca tek = prvaKuca;
  216.        
  217.         if(tek == null){
  218.             s += " je prazna.";
  219.         } else {
  220.             while(tek != null){
  221.                 s += "\n" + tek;
  222.                 tek = tek.veza;
  223.             }
  224.         }
  225.            
  226.         return s;
  227.     }
  228. }
  229.  
  230.  
  231.  
  232.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement