Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ////Klasa Element stavljas kao posebnu klasu
- public class Element {
- Element veza ;
- double info ;
- public Element( double info) {
- this.veza= null;
- this.info = info;
- }
- public String toString(){
- return info+" ";
- }
- //////////// Klasa Lista stavljas kao posebnu klasu
- public class Lista {
- Element prvi ;
- Element poslednji ;
- int brojacElemenata ;
- public Lista(){
- this.prvi = null ;
- this.poslednji = null;
- this.brojacElemenata = 0 ;
- }
- public String toString(){
- String rez = "Lista [ ";
- Element tekuci = prvi ;
- while(tekuci != null){
- rez += tekuci.info+" " ;
- tekuci = tekuci.veza;
- }
- rez += " ] ";
- return rez;
- }
- public void dodajNaPocetak(double info) {
- Element novi = new Element(info);
- novi.veza = prvi ;
- prvi = novi ;
- brojacElemenata ++ ;
- if(poslednji == null)
- poslednji = novi ;
- }
- public void dodajNaKraj(double info){
- if(poslednji == null)
- dodajNaPocetak(info);
- else{
- Element novi = new Element(info);
- poslednji.veza = novi;
- poslednji = novi ;
- brojacElemenata ++ ;
- }
- }
- //-----------Skracuje na poslednjih N elemenata
- public void skratiNaPoslednjihN( int n ){
- if(prvi != null){
- if( brojacElemenata - n <= 0 ){
- return ;
- }
- if(brojacElemenata - n == 1 ){
- prvi = prvi.veza ;
- }
- if(n == 1 ){
- prvi.veza = null ;
- prvi = poslednji ;
- }
- else{
- Element tekuci = prvi ;
- int brojac = 0 ;
- int pomoc = brojacElemenata - n ;
- Element prethodni = null;
- while( tekuci.veza != null && brojac < pomoc){
- prethodni = tekuci ;
- tekuci = tekuci.veza ;
- brojac++ ;
- }
- if(tekuci != null){
- prvi = tekuci ;
- prethodni.veza = null ;
- }
- }
- }
- }
- //--------------Parne pozicije prebacuje u novu
- public Lista prebaciParnePozicije(){
- Lista parnaLista = new Lista();
- if(prvi!= null){
- if(brojacElemenata == 1 )
- return parnaLista ;
- int brojac = 1;
- Element tekuci = prvi ;
- Element prethodni = null ;
- while(tekuci != null ){
- if(brojac % 2 == 0){
- prethodni.veza = tekuci.veza ;
- if(parnaLista.prvi == null){
- parnaLista.prvi = tekuci;
- tekuci.veza = null ;
- parnaLista.poslednji = tekuci ;
- parnaLista.brojacElemenata ++ ;
- }
- else{
- parnaLista.poslednji.veza = tekuci;
- tekuci.veza = null;
- parnaLista.poslednji = tekuci;
- parnaLista.brojacElemenata ++ ;
- }
- tekuci = prethodni;
- }
- prethodni = tekuci ;
- tekuci = tekuci.veza ;
- brojac++;
- }
- return parnaLista ;
- }
- else{
- return parnaLista;
- }
- }
- //-----------sabira po dva za novu
- public Lista sabiraPoDva(){
- Lista sabranaLista = new Lista();
- if(prvi != null){
- if(brojacElemenata == 1){
- sabranaLista.prvi = poslednji ;
- }
- Element tekuci = prvi ;
- Element prethodni = null;
- while(tekuci.veza != null){
- prethodni = tekuci ;
- tekuci = tekuci.veza ;
- sabranaLista.dodajNaKraj(prethodni.info +tekuci.info);
- }
- sabranaLista.dodajNaKraj(poslednji.info);
- return sabranaLista ;
- }
- else{
- return sabranaLista;
- }
- }
- //-----------Brise one koji su veci odprethodnika
- public void briseVeceOdPrethodnika(){
- if(prvi != null){
- if(brojacElemenata == 1)
- return;
- Element tekuci = prvi ;
- Element prethodni = null ;
- while(tekuci.veza != null){
- prethodni = tekuci ;
- tekuci = tekuci.veza ;
- if( tekuci.info > prethodni.info){
- prethodni.veza = tekuci.veza;
- tekuci.veza = null;
- tekuci = prethodni ;
- brojacElemenata--;
- }
- }
- }
- }
- //----------Uvecava za velicinu svog prethodnika pa ga brise ako je veci od unetog broja
- public void uvecavaPaIzbacujeAkoTreba( double unos ){
- if(prvi !=null){
- if(brojacElemenata == 1 )
- return;
- Element tekuci = prvi;
- Element prethodni = null;
- while(tekuci.veza != null){
- prethodni = tekuci ;
- tekuci = tekuci.veza ;
- tekuci.info = tekuci.info + prethodni.info;
- if(tekuci.info > unos){
- prethodni.veza = tekuci.veza;
- tekuci.veza = null;
- tekuci = prethodni;
- brojacElemenata--;
- }
- }
- }
- }
- }
- /////////Klasa mejn stavljas kao novu klasu
- public class Mejn {
- public static void main(String[] args) {
- Lista lista = new Lista() ;
- int n = Svetovid.in.readInt("unesite br elemnata liste" ) ;
- for(int i = 0 ; i < n ; i ++) {
- double pomoc = Svetovid.in.readDouble("unesite clan liste") ;
- lista.dodajNaPocetak(pomoc);
- }
- System.out.println("lista 'lista' : " + lista);
- // lista.skratiNaPoslednjihN(7);
- // System.out.println("lista 'lista' posle ostavljanja poslednjih n: " + lista);
- // Lista parnaLista = lista.prebaciParnePozicije() ;
- // System.out.println("lista 'lista' posle izbacivanja parnih pozicija " + lista);
- // System.out.println("lista 'parnaLista' " + parnaLista);
- // Lista sabranaLista = lista.sabiraPoDva();
- // System.out.println("lista 'parnaLista' " +sabranaLista);
- // lista.briseVeceOdPrethodnika();
- // System.out.println("lista 'lista' posle brisanja vecih od prethodnika " +lista);
- lista.uvecavaPaIzbacujeAkoTreba( 20 );
- System.out.println("lista 'lista' posle sabiranja elementa sa prethodnikom i izbacivanjem ak je veci od unosa " +lista);
- }
- }
Add Comment
Please, Sign In to add comment