Junior — Middle
Koje su glavne prednosti i mane strukture podataka Stack?
sobes.tech АИ
Одговор од АИ
Стек (Stack) је структура података која ради по принципу LIFO (Last In, First Out), где се последњи додати елемент уклања први.
Предности:
- Једноставна за имплементацију и коришћење.
- Брз приступ горњем елементу (операције push, pop, peek се извршавају у O(1)).
- Погодан за задатке који захтевају обраду у обрнутом редоследу, као што су обилазак дрвета, отказивање акција, парсирање.
Недостаци:
- Ограничен приступ: може се радити само са горњим елементом, без произвољног приступа.
- Величина стека може бити ограничена (нпр. стек позива у програму), што може довести до прелива.
Пример у 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
}