Skoči na vsebino

05 nakupovalni sistem - Starc Aljaz

./src/zbirke/Seznam.java
package zbirke;

public class Seznam {

    private static String[] nizi;

    /**
     * @return stevilo elementov v listu nizi
     */
    private static int niziCount () {
        int count = 0;
        for (String item: nizi) {
            if (item != null) count++;
        }
        return count;
    }

    // 2.
    public static boolean narediSeznam (int n) {
        if (n <= 0 || nizi != null) return false;
        nizi = new String[n];
        return true;
    }

    // 3.
    public static boolean dodajNaKonecSeznama (String element) {
        try {
            nizi[niziCount()] = element;
            return true;
        } catch (Exception e) {
            return false;
        }
    }

    // 4.
    public static void izpisiSeznam() {
        if (nizi == null) System.out.println("NAPAKA: Seznam ne obstaja.");
        else if (niziCount() == 0) System.out.println("Seznam je prazen (nima elementov).");
        else {
            System.out.println("Na seznamu so naslednji elementi:");
            for (int i=0;i<niziCount();i++) System.out.format("%d: %s%n", i+1, nizi[i]);
        }
    }

    /**
     * 5. Odstani element iz seznama
     * 
     * @param mesto mesto elementa [1, ->] 
     * @return Vrednost odstranjenega elementa ali null
     */
    public static String odstraniIzSeznama(int mesto) {
        try {
            if (
                mesto <= 0 ||
                mesto > nizi.length ||
                nizi[mesto - 1] == null
            ) return null;

            String el = nizi[mesto - 1];

            for (int i = mesto-1; i<niziCount(); i++) {
                if (i == nizi.length-1) nizi[i] = null;
                else nizi[i] = nizi[i + 1];
            }
            return el;
        } catch (Exception e) {
            return null;
        }
    }


    /**
     * 6. dodaj element v seznam na doloceno mesto
     * - ce je mesto preveliko bo element dodan na konec seznama
     * - ce je mesto isto ali enako 0 return-a false
     * - ce je 
     * 
     * @param element vrednost elementa, ki naj bo dodan
     * @param mesto mesto v seznamu [1, ->] kamor naj bo element postavljen
     * @return any je bil element uspesno dodan
     */
    public static boolean dodajVSeznam(String element, int mesto) {
        try {
            if (mesto <= 0) return false;
            nizi[mesto >= nizi.length ? niziCount() : mesto] = element;
            return true;
        } catch (Exception e) {
            return false;
        }
    }

    /**
     * 7. pridobi stevilo elementov v seznamu
     * - v primeru da seznam ni initializiran vrne vrednost -1
     *      sicer pa vrne stevilo elementov v listi
     * 
     * @return vrne st. elementov v seznamu [-1, 1, ->]
     */
    public static int dolzinaSeznama () {
        return nizi == null ? -1 : niziCount();
    }

    /**
     * 8. unici seznam
     * false - ce je seznam se neinitializiran
     * true - ce je seznam uspesno unicen
     * 
     * @return ali je bil uspesno unicen
     */
    public static boolean uniciSeznam () {
        if (nizi == null) return false;
        nizi = null;
        return true;
    }

}

Zadnja posodobitev: April 5, 2022