Du er ikke logget inn. Så lenge du ikke er logget inn går du glipp av muligheten for å holde styr på din egen progresjon.

Logg inn

Valgte tags:

Filtrering:

Skriv ut:

05.2: KvadratStabel.java

Vi skal implementere en enkel stabel (eng: stack) som skal ha tre metoder:

  • leggPaa() - et element dyttes på toppen av stabelen.
  • taAv() - et element tas av toppen av stabelen og returneres. Hvis stabelen er tom skal den returnere null.
  • erTom() - returnerer sant hvis, og bare hvis, stabelen er tom.

a) Stabelen skal kunne ta vare på objekter av typen Kvadrat. Lag Kvadrat dersom du ikke har gjort det tidligere (del av oppgave 1.3).

b) Skriv klassen KvadratStabel med metodene leggPaa(), taAv() og erTom(). Klassen må også inneholde en indre klasse Node, som holder en peker til et Kvadrat. Nodene skal inneholde alle data i listen. leggPaa() skal legge en ny node med et kvadrat på toppen av stabelen, altså før forrige objekt som ble lagt til. taAv() skal ta av det øverste objektet og returnere dette.

public class TestKvadratStabel {
    public static void main(String[] args) {
        KvadratStabel stabel = new KvadratStabel();
        stabel.leggPaa(new Kvadrat(1));
        stabel.leggPaa(new Kvadrat(2));
        stabel.leggPaa(new Kvadrat(3));
        stabel.leggPaa(new Kvadrat(4));
        stabel.leggPaa(new Kvadrat(5));
        stabel.leggPaa(new Kvadrat(6));
        double sum = 0, siste = 0;
        while (!stabel.erTom()){
            Kvadrat k = stabel.taAv();
            sum += k.areal();
            siste = k.areal();
        }
        System.out.println("Summen av kvadratenes areal er "
                           + sum);
        System.out.println("Det siste kvadratet i stabelen har areal: " 
                           + siste);
    }
}