Dzok1517

Untitled

Apr 11th, 2019
157
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 6.42 KB | None | 0 0
  1. ////Klasa Element stavljas kao posebnu klasu
  2. public class Element {
  3.   Element veza ;
  4.   double info ;
  5.  
  6.   public Element( double info) {
  7.   this.veza= null;
  8.   this.info = info;
  9.  
  10.   }
  11.   public String toString(){
  12.   return info+" ";
  13.  
  14.   }
  15. //////////// Klasa Lista stavljas kao posebnu klasu
  16. public class Lista {
  17.   Element prvi ;
  18.   Element poslednji ;
  19.   int brojacElemenata ;
  20.  
  21.   public Lista(){
  22.     this.prvi = null ;
  23.     this.poslednji = null;
  24.     this.brojacElemenata = 0 ;
  25.    
  26.   }
  27.   public String toString(){
  28.     String rez = "Lista [ ";
  29.     Element tekuci = prvi ;
  30.     while(tekuci != null){
  31.       rez += tekuci.info+" " ;
  32.       tekuci = tekuci.veza;
  33.      
  34.     }
  35.     rez += " ] ";
  36.     return rez;
  37.    
  38.    
  39.   }
  40.   public void dodajNaPocetak(double info) {
  41.     Element novi = new Element(info);
  42.     novi.veza = prvi ;
  43.     prvi = novi ;
  44.     brojacElemenata ++ ;
  45.     if(poslednji == null)
  46.       poslednji = novi ;
  47.    
  48.   }
  49.  
  50.   public void dodajNaKraj(double info){
  51.     if(poslednji == null)
  52.       dodajNaPocetak(info);
  53.    
  54.     else{
  55.      
  56.       Element novi = new Element(info);
  57.       poslednji.veza = novi;
  58.       poslednji = novi ;
  59.       brojacElemenata ++ ;
  60.      
  61.     }
  62.   }
  63.  
  64.   //-----------Skracuje na poslednjih N elemenata
  65.   public void skratiNaPoslednjihN( int n ){
  66.    
  67.     if(prvi != null){
  68.      
  69.       if( brojacElemenata - n <= 0 ){
  70.         return ;
  71.       }
  72.       if(brojacElemenata - n == 1 ){
  73.         prvi = prvi.veza ;
  74.       }
  75.       if(n == 1 ){
  76.         prvi.veza = null ;
  77.         prvi = poslednji ;
  78.       }
  79.       else{
  80.         Element tekuci = prvi ;
  81.         int brojac = 0 ;
  82.         int pomoc = brojacElemenata - n ;
  83.         Element prethodni = null;
  84.         while( tekuci.veza != null && brojac < pomoc){
  85.           prethodni = tekuci ;
  86.           tekuci = tekuci.veza ;
  87.           brojac++ ;
  88.          
  89.         }
  90.         if(tekuci != null){
  91.           prvi = tekuci ;
  92.           prethodni.veza = null ;
  93.         }
  94.        
  95.       }
  96.      
  97.     }
  98.    
  99.   }
  100.  
  101.   //--------------Parne pozicije prebacuje u novu
  102.  
  103.   public Lista prebaciParnePozicije(){
  104.     Lista parnaLista = new Lista();
  105.     if(prvi!= null){
  106.      
  107.       if(brojacElemenata == 1 )
  108.         return parnaLista ;
  109.      
  110.       int brojac = 1;
  111.       Element tekuci = prvi ;
  112.       Element prethodni = null ;
  113.      
  114.      
  115.       while(tekuci != null ){
  116.        
  117.        
  118.         if(brojac % 2 == 0){
  119.           prethodni.veza = tekuci.veza ;
  120.          
  121.           if(parnaLista.prvi == null){
  122.             parnaLista.prvi = tekuci;
  123.             tekuci.veza = null ;
  124.             parnaLista.poslednji = tekuci ;
  125.             parnaLista.brojacElemenata ++ ;
  126.            
  127.           }
  128.           else{
  129.             parnaLista.poslednji.veza = tekuci;
  130.             tekuci.veza = null;
  131.             parnaLista.poslednji = tekuci;
  132.             parnaLista.brojacElemenata ++ ;
  133.            
  134.            
  135.           }
  136.           tekuci = prethodni;
  137.          
  138.          
  139.          
  140.         }
  141.         prethodni = tekuci ;
  142.         tekuci = tekuci.veza ;
  143.         brojac++;
  144.        
  145.        
  146.       }
  147.       return parnaLista ;
  148.      
  149.     }
  150.     else{
  151.       return parnaLista;
  152.     }
  153.    
  154.   }
  155.  
  156.   //-----------sabira po dva za novu
  157.  
  158.   public Lista sabiraPoDva(){
  159.     Lista sabranaLista = new Lista();
  160.    
  161.     if(prvi != null){
  162.      
  163.       if(brojacElemenata == 1){
  164.         sabranaLista.prvi = poslednji ;
  165.       }
  166.       Element tekuci = prvi ;
  167.       Element prethodni = null;
  168.      
  169.       while(tekuci.veza != null){
  170.         prethodni = tekuci ;
  171.         tekuci = tekuci.veza ;
  172.        
  173.         sabranaLista.dodajNaKraj(prethodni.info +tekuci.info);
  174.        
  175.        
  176.       }
  177.       sabranaLista.dodajNaKraj(poslednji.info);
  178.      
  179.      
  180.       return sabranaLista ;
  181.      
  182.     }
  183.     else{
  184.       return sabranaLista;
  185.     }
  186.    
  187.    
  188.    
  189.   }
  190.  
  191.   //-----------Brise one koji su veci odprethodnika
  192.  
  193.   public void briseVeceOdPrethodnika(){
  194.    
  195.     if(prvi != null){
  196.      
  197.       if(brojacElemenata == 1)
  198.         return;
  199.      
  200.       Element tekuci = prvi ;
  201.       Element prethodni = null ;
  202.      
  203.       while(tekuci.veza != null){
  204.         prethodni = tekuci ;
  205.         tekuci = tekuci.veza ;
  206.        
  207.         if( tekuci.info > prethodni.info){
  208.           prethodni.veza = tekuci.veza;
  209.           tekuci.veza = null;
  210.           tekuci = prethodni ;
  211.           brojacElemenata--;
  212.          
  213.         }
  214.        
  215.        
  216.       }
  217.      
  218.     }
  219.    
  220.   }
  221.   //----------Uvecava za velicinu svog prethodnika pa ga brise ako je veci od unetog broja
  222.  
  223.   public void uvecavaPaIzbacujeAkoTreba( double unos ){
  224.    
  225.     if(prvi !=null){
  226.      
  227.       if(brojacElemenata == 1 )
  228.         return;
  229.      
  230.       Element tekuci = prvi;
  231.       Element prethodni = null;
  232.      
  233.       while(tekuci.veza != null){
  234.         prethodni = tekuci ;
  235.         tekuci = tekuci.veza ;
  236.        
  237.         tekuci.info = tekuci.info + prethodni.info;
  238.        
  239.         if(tekuci.info > unos){
  240.           prethodni.veza = tekuci.veza;
  241.           tekuci.veza = null;
  242.          tekuci = prethodni;
  243.           brojacElemenata--;
  244.          
  245.         }
  246.       }
  247.     }
  248.   }
  249. }
  250.  
  251. /////////Klasa mejn stavljas kao novu klasu
  252. public class Mejn  {
  253.  
  254.   public static void main(String[] args) {
  255.    
  256.     Lista lista = new Lista() ;
  257.    
  258.     int n = Svetovid.in.readInt("unesite br elemnata liste" ) ;
  259.     for(int i = 0 ; i < n ; i ++) {
  260.       double pomoc = Svetovid.in.readDouble("unesite clan liste") ;
  261.       lista.dodajNaPocetak(pomoc);
  262.      
  263.     }
  264.     System.out.println("lista 'lista' : " + lista);
  265.    
  266.     // lista.skratiNaPoslednjihN(7);
  267.    
  268.     // System.out.println("lista 'lista' posle ostavljanja poslednjih n: " + lista);
  269.    
  270.     // Lista parnaLista = lista.prebaciParnePozicije() ;
  271.    
  272.     //  System.out.println("lista 'lista' posle izbacivanja parnih pozicija " + lista);
  273.    
  274.     //  System.out.println("lista 'parnaLista' " + parnaLista);
  275.    
  276.     //  Lista sabranaLista = lista.sabiraPoDva();
  277.    
  278.     // System.out.println("lista 'parnaLista' " +sabranaLista);
  279.    
  280.     //  lista.briseVeceOdPrethodnika();
  281.    
  282.     // System.out.println("lista 'lista' posle brisanja vecih od prethodnika " +lista);
  283.    
  284.     lista.uvecavaPaIzbacujeAkoTreba( 20 );
  285.     System.out.println("lista 'lista' posle sabiranja elementa sa prethodnikom i izbacivanjem ak je veci od unosa " +lista);
  286.   }
  287.  
  288. }
Add Comment
Please, Sign In to add comment