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