Stack ehk magasin
Magasin on andmestruktuur, kus andmeid lisatakse ja eemaldatakse last-in-first-out(LIFO) põhimõttel.
Magasinil on neli põhilist meetodit:
push()
- magasini lisamiseks.pop()
- magasinist eemaldamiseks.peek()
- magasini viimase elemendi tagastamiseks.isEmpty()
- tagastab tõeväärtuse selle kohta, kas magasin on tühi või mitte.
LIFO põhimõte
Kujutame magasini ette mingi kuhjana. Andmeid lisame alati kuhja peale ja andmeid saame eemaldada vaid kuhja tipust.
Andmeid lisame magasini push()
meetodiga ja alati magasini lõppu (tippu)
Andmeid eemaldame magasinist pop()
meetodiga. Eemaldatakse alati kõige viimane elemnt, mille me magasini lisasime.
Magasin Javas
Javas on magasini jaoks olemas klass Stack. Siiski soovitatakse Javas kasutada Deque liidest ja realisatsioonina klassi ArrayDeque. Deque on kahe otsaga järjekord aga sisaldab samas ka magasini funktsionaalsust
public class StackExamples {
import java.util.Deque;
import java.util.ArrayDeque;
public static void main(String[] args) {
Deque<Integer> stack = new ArrayDeque<Integer>();
for (int i = 0; i < 10; i++){
stack.push(i); // lisame numbrid 0, 1, ... , 9
}
while (!stack.isEmpty()){
System.out.println(stack.pop()); // prinditakse numbrid 9, 8, ... , 0
}
}
}