Sobes.tech
Junior — Middle

Yığın veri yapısının temel avantajları ve dezavantajları nelerdir?

sobes.tech yapay zeka

AI'dan gelen yanıt

Yığın (Stack), LIFO (Last In, First Out) prensibiyle çalışan ve son eklenen öğenin ilk çıkarıldığı bir veri yapısıdır.

Avantajlar:

  • Uygulaması ve kullanımı kolaydır.
  • Üstteki öğeye hızlı erişim sağlar (push, pop, peek işlemleri O(1) süresindedir).
  • Ağaç gezintisi, geri alma işlemleri, ayrıştırma gibi ters sıralama işlemleriyle ilgili görevler için uygundur.

Dezavantajlar:

  • Sınırlı erişim: sadece üstteki öğe ile çalışılabilir, rastgele erişim mümkün değildir.
  • Yığının boyutu sınırlı olabilir (örneğin, programdaki çağrı yığını), bu da taşmalara yol açabilir.

Go dilinde örnek:

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
}