Junior — Middle
Wat zijn de belangrijkste voordelen en nadelen van de Stack-gegevensstructuur?
sobes.tech AI
Antwoord van AI
De Stack is een gegevensstructuur die volgens het LIFO-principe (Last In, First Out) werkt, waarbij het laatst toegevoegde element als eerste wordt verwijderd.
Voordelen:
- Eenvoudig te implementeren en te gebruiken.
- Snelle toegang tot het bovenste element (push-, pop- en peek-bewerkingen worden in O(1) uitgevoerd).
- Zeer geschikt voor taken die verband houden met verwerking in omgekeerde volgorde, zoals boomdoorloop, acties ongedaan maken, parsing.
Nadelen:
- Beperkte toegang: je kunt alleen werken met het bovenste element, geen willekeurige toegang.
- De grootte van de stack kan beperkt zijn (bijvoorbeeld de oproepstack in een programma), wat kan leiden tot overloop.
Voorbeeld in Go:
package main
import "fmt"
type Stack []int
func (s *Stack) Push(v int) {
*s = append(*s, v)
}
func (s *Stack) Pop() (int, bool) {
if len(*s) == 0 {
return 0, false
}
index := len(*s) - 1
elem := (*s)[index]
*s = (*s)[:index]
return elem, true
}
func main() {
var s Stack
s.Push(10)
s.Push(20)
fmt.Println(s.Pop()) // 20, true
fmt.Println(s.Pop()) // 10, true
}