public class SpajanyZoznam {
/**
* Sukromna trieda reprezentujuca jeden uzol spajaneho zoznamu
*/
public static class Uzol {
int hodnota;
Uzol dalsi;
}
/**
* Referencia na prvy uzol spajaneho zoznamu
*/
private Uzol prvy = null;
public Uzol vratITy(int index) {
Uzol aktualny = prvy;
int pozicia = 0;
while (aktualny !=null) {
if(pozicia==index) {
return aktualny;
}
aktualny = aktualny.dalsi;
pozicia++;
}
return null;
}
public int get(int index) {
return vratITy(index).hodnota;
}
public void set(int index, int value){
this.vratITy(index).hodnota = value;
}
public void add(int value) {
Uzol novy = new Uzol();
novy.hodnota = value;
novy.dalsi = null;
Uzol aktualny = prvy;
if(prvy == null) {
prvy = novy;
return;
}
while(aktualny.dalsi!=null) {
aktualny = aktualny.dalsi;
}
aktualny.dalsi = novy;
}
public void add(int index, int value) {
}
public void remove(int index) {
}
/**
* Prida novu hodnotu na zaciatok spajaneho zoznamu
*
* @param hodnota
* pridavana hodnota
*/
// public void pridajNaZaciatok(int hodnota) {
// Uzol pridavany = new Uzol();
// pridavany.hodnota = hodnota;
// pridavany.dalsi = prvy;
// prvy = pridavany;
// }
//
// @Override
// public String toString() {
// String vysledok = "[";
// Uzol aktualny = prvy;
// while (aktualny != null) {
// if (aktualny != prvy)
// vysledok += ", ";
//
// vysledok += aktualny.hodnota;
// aktualny = aktualny.dalsi;
// }
//
// return vysledok + "]";
// }
//
// /**
// * Vrati sucet hodnot ulozenych v spajanom zozname
// */
// public int sucet() {
// // Referencia na uzol zoznamu, na ktorom sa prave nachadzame
// Uzol aktualny = prvy;
// // Premenna, v ktorej akumulujeme sucet
// int vysledok = 0;
// // Kym sme na nejakom uzle ...
// while (aktualny != null) {
// // Priratame hodnotu uzla
// vysledok += aktualny.hodnota;
// // Presunieme sa na dalsi uzol v zozname
// aktualny = aktualny.dalsi;
// }
//
// return vysledok;
// }
//
// private Uzol vratITy(int index) {
// Uzol aktualny = prvy;
// int pozicia = 0;
// while (aktualny != null) {
// if (pozicia == index) {
// return aktualny;
// }
//
// aktualny = aktualny.dalsi;
// pozicia++;
// }
//
// return null;
// }
//
// public int get(int index) {
// Uzol ity = vratITy(index);
// if (ity != null)
// return ity.hodnota;
//
// throw new IndexOutOfBoundsException();
// }
//
// public void set(int index, int value) {
// Uzol ity = vratITy(index);
// if (ity != null) {
// ity.hodnota = value;
// } else
// throw new IndexOutOfBoundsException();
// }
//
// public void add(int value) {
// Uzol novy = new Uzol();
// novy.hodnota = value;
//
// if (prvy == null) {
// prvy = novy;
// return;
// }
//
// Uzol aktualny = prvy;
// while (aktualny.dalsi != null) {
// aktualny = aktualny.dalsi;
// }
//
// aktualny.dalsi = novy;
// }
//
// public void add(int index, int value) {
// if (index == 0) {
// pridajNaZaciatok(value);
// return;
// }
//
// Uzol novy = new Uzol();
// novy.hodnota = value;
//
// Uzol predchadzajuci = vratITy(index - 1);
// novy.dalsi = predchadzajuci.dalsi;
// predchadzajuci.dalsi = novy;
// }
//
// public void remove(int index) {
// try {
// if (index == 0) {
// prvy = prvy.dalsi;
// } else {
// Uzol predosly = vratITy(index - 1);
// predosly.dalsi = predosly.dalsi.dalsi;
// }
// } catch (Exception e) {
// throw new IndexOutOfBoundsException();
// }
// }
}