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
}