From: Doni Pracner Date: Tue, 24 Mar 2015 16:53:17 +0000 (+0100) Subject: Liste, osnovne operacije, primer X-Git-Url: https://svarog.pmf.uns.ac.rs/gitweb/?a=commitdiff_plain;h=5dbfd96bcd3aaaced9bd3a9c524ba634176f56c1;p=spa1-materijali.git Liste, osnovne operacije, primer --- diff --git a/kodovi/liste/ListeOsnovneOperacije.java b/kodovi/liste/ListeOsnovneOperacije.java new file mode 100644 index 0000000..90c5de5 --- /dev/null +++ b/kodovi/liste/ListeOsnovneOperacije.java @@ -0,0 +1,97 @@ +/** + * Prikaz osnovnih operacija sa jednostruko povezanom listom - formiranje i + * stampanje + */ +public class ListeOsnovneOperacije { + + public static void main(String[] arg) { + ListaBrojeva lista = new ListaBrojeva(); + int br; + System.out.println("unesite n (broj brojeva): "); + int n = Svetovid.in.readInt(); + System.out.println("unesite brojeve"); + for (int i = 0; i < n; i++) { + br = Svetovid.in.readInt(); + lista.dodajNaPocetak(br); + } + System.out.println("Sadrzaj liste:"); + lista.stampajNaEkran(); + } +} + +/** + * ListaBrojeva predstavlja listu brojeva sa odgovarajucim operacijama za + * dodavanje u listu i za stampanje iste. + */ +class ListaBrojeva { + + /** + * Element u klasi ListaBrojeva. Sadrzi informaciju, odnosno broj i + * pokazivac na sledeci element u listi. + * + * Klasa je napravljena kao unutrasnja od ListaBrojeva posto zapravo nikog + * van klase i ne treba da interesuje kako iznutra predstavljamo podatke. + * + * Klasa je mogla biti postavljena i na istom nivou kao ListaBrojeva i bila + * bi ista funkcionalnost. + */ + class Element { + int info; + Element veza; + + public Element(int br) { + this.info = br; + this.veza = null; + } + + public String toString() { + return info + ""; + } + } + + // pokazivac na prvi element liste + Element prvi; + + /** Kreira praznu listu brojeva. */ + public ListaBrojeva() { + this.prvi = null; + } + + /** Dodaje novi broj na pocetak liste */ + public void dodajNaPocetak(int br) { + Element novi = new Element(br); + novi.veza = prvi; + prvi = novi; + } + + /** Vraca da li je lista prazna */ + public boolean jePrazna() { + return prvi == null; + } + + public void stampajNaEkran() { + if (jePrazna()) { + Svetovid.out.println("Lista je prazna"); + } else { + Svetovid.out.println("Sadrzaj liste:"); + Element tekuci = prvi; + while (tekuci != null) { + System.out.println(tekuci.info); + tekuci = tekuci.veza; + } + System.out.println(); + } + } + + public String toString() { + String rez = "Lista: [ "; + Element tekuci = prvi; + while (tekuci != null) { + rez += tekuci.info + " "; + tekuci = tekuci.veza; + } + rez += "]"; + return rez; + } + +}