Junior — Middle
Care sunt principalele avantaje și dezavantaje ale structurii de date Stack?
sobes.tech AI
Răspuns de la AI
Stiva (Stack) este o structură de date cu principiul de funcționare LIFO (Last In, First Out), unde ultimul element adăugat este extras primul.
Avantaje:
- Ușor de implementat și utilizat.
- Acces rapid la elementul de deasupra (operațiile push, pop, peek se realizează în O(1)).
- Potrivit pentru sarcini legate de procesarea în ordine inversă, cum ar fi traversarea unui copac, anularea acțiunilor, analiză sintactică.
Dezavantaje:
- Acces limitat: se poate lucra doar cu elementul de deasupra, fără acces arbitrar.
- Dimensiunea stivei poate fi limitată (de exemplu, stiva de apeluri dintr-un program), ceea ce poate duce la supraîncărcare.
Exemplu în 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
}