Matematické Fórum

Nevíte-li si rady s jakýmkoliv matematickým problémem, toto místo je pro vás jako dělané.

Nástěnka
22. 8. 2021 (L) Přecházíme zpět na doménu forum.matweb.cz!
04.11.2016 (Jel.) Čtete, prosím, před vložení dotazu, děkuji!
23.10.2013 (Jel.) Zkuste před zadáním dotazu použít některý z online-nástrojů, konzultovat použití můžete v sekci CAS.

Nejste přihlášen(a). Přihlásit

#1 10. 03. 2013 18:19

honyik
Příspěvky: 188
Škola: ZČU
Pozice: student
Reputace:   
 

Java - zásobník spojového seznamu - problém s výstupem

Zdravím,
dělám na prvním úkolu z tohoto odkazu a mám menší problém. Potřeboval bych poradit s výstupem. Když se snažím vytisknout na obrazovku, tak mi to vyhodí tuhle chybu:

Code:

Exception in thread "main" java.lang.NullPointerException
    at cv04.ukol01.CharZasobnik.push(CharZasobnik.java:28):
     at cv04.ukol01.Zavorky.main(Zavorky.java:20)

Pro snadnější vyhledávání jsem označil chyby komentářem chyba.

Code:

public class CharZasobnik {
    
    private Znak vrchol;
    
    private class Znak {
        char znak;
        int cislo;
        Znak dalsi;
        
        public Znak(char znak, int cislo, Znak dalsi) {
            this.znak = znak;
            this.cislo = cislo;
            this.dalsi = dalsi;
        }

    }
    
    //vytvoreni prazdneho zasobniku
    CharZasobnik(){
        vrchol = null;
    }
    
    void push(char znak, int cislo) {
        vrchol = new Znak(znak, cislo, vrchol);
        System.out.println(vrchol.znak + vrchol.dalsi.znak)        //chyba
        
    }

Code:

public class Zavorky {
    static private Scanner sc = new Scanner(System.in);
    
    private static char[] oteviraci = {'{','[','('};
    private static char[] uzaviraci = {'}',']',')'};

    public static void main(String[] args) {
        
        System.out.print("Zadejte vstup: ");
        String vstup = sc.nextLine();
        
        CharZasobnik zasobnik = new CharZasobnik();
        
        for(int i = 0; i < vstup.length(); i++) {
            for (int j = 0; j < oteviraci.length; j++) {
                if (vstup.charAt(i) == oteviraci[j]) {
                    zasobnik.push(vstup.charAt(i), j);          // chyba
                }
            }
        }

    }

}

Chyba nějaká podle mě v příkazu "vrchol.dalsi.znak", bez toho mi to program normálně vytiskne. Nevíte si s tím někdo prosím rady? Díky moc


Děkuji za pomoc! :)

Offline

 

Zápatí

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson