Sobes.tech
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
}