Sobes.tech
Junior — Middle

Aké sú hlavné výhody a nevýhody dátovej štruktúry Stack?

sobes.tech AI

Odpoveď od AI

Zásobník (Stack) je dátová štruktúra s princípom LIFO (Last In, First Out), kde je posledný pridaný prvok odstránený ako prvý.

Výhody:

  • Jednoduchá implementácia a použitie.
  • Rýchly prístup k hornému prvku (operácie push, pop, peek sa vykonávajú v O(1)).
  • Vhodný pre úlohy súvisiace s spracovaním v obrátenom poradí, napríklad prechádzanie stromom, zrušenie akcií, parsovanie.

Nevýhody:

  • Obmedzený prístup: možno pracovať iba s horným prvkom, nie s ľubovoľným.
  • Veľkosť zásobníka môže byť obmedzená (napríklad zásobník volaní v programe), čo môže viesť k pretečeniu.

Príklad v 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
}