gitweb on Svarog

projekti pod git sistemom za održavanje verzija -- projects under the git version control system
Liste, osnovne operacije, primer
authorDoni Pracner <donny@rarogl>
Tue, 24 Mar 2015 16:53:17 +0000 (17:53 +0100)
committerDoni Pracner <donny@rarogl>
Tue, 24 Mar 2015 16:53:17 +0000 (17:53 +0100)
kodovi/liste/ListeOsnovneOperacije.java [new file with mode: 0644]

diff --git a/kodovi/liste/ListeOsnovneOperacije.java b/kodovi/liste/ListeOsnovneOperacije.java
new file mode 100644 (file)
index 0000000..90c5de5
--- /dev/null
@@ -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;
+       }
+
+}
Svarog.pmf.uns.ac.rs/gitweb maintanance Doni Pracner