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
}