Sobes.tech
Intern

Hangi veri yapıları vardır?

sobes.tech yapay zeka

AI'dan gelen yanıt

Aşağıdaki temel veri yapıları mevcuttur:

İlkel (Primitive):

  • Tam sayılar (Integer)
  • Ondalıklı sayılar (Floating-point numbers)
  • Boolean değerleri (Boolean)
  • Karakterler (Character)

Soyut (Abstract):

  • Dizi (Array): Aynı türden öğelerin sıralı koleksiyonu, indeksle erişim sabit zamanda.
  • Bağlı liste (Linked List): Veri ve bir sonraki düğüme referans içeren düğümler koleksiyonu. Başlangıç/bitiş ekleme/silme verimli, indeksle erişim - $O(n)$.
    • Tek yönlü bağlı liste (Singly Linked List)
    • Çift yönlü bağlı liste (Doubly Linked List)
    • Döngüsel bağlı liste (Circular Linked List)
  • Yığın (Stack): LIFO (Son Giren İlk Çıkar) yapısı. İşlemler: push (ekleme), pop (silme), peek (üst öğeye bakma).
    struct Stack<Element> {
        private var elements: [Element] = []
    
        mutating func push(_ element: Element) {
            elements.append(element)
        }
    
        mutating func pop() -> Element? {
            return elements.popLast()
        }
    
        func peek() -> Element? {
            return elements.last
        }
    
        var isEmpty: Bool {
            return elements.isEmpty
        }
    }
    
  • Kuyruk (Queue): FIFO (İlk Giren İlk Çıkar) yapısı. İşlemler: enqueue (ekleme), dequeue (silme), peek (ilk öğeye bakma).
    struct Queue<Element> {
        private var elements: [Element] = []
    
        mutating func enqueue(_ element: Element) {
            elements.append(element)
        }
    
        mutating func dequeue() -> Element? {
            guard !elements.isEmpty else { return nil }
            return elements.removeFirst()
        }
    
        func peek() -> Element? {
            return elements.first
        }
    
        var isEmpty: Bool {
            return elements.isEmpty
        }
    }
    
  • Hash Tablosu (Hash Table) / Sözlük (Dictionary) / İlişkisel Dizi (Associative Array): Anahtar-değer çiftleri koleksiyonu, anahtar kullanarak verimli arama, ekleme ve silme sağlar.
    var dictionary = [String: Any]() // Swift'te örnek sözlük
    dictionary["key1"] = "value1"
    let value = dictionary["key1"]
    
  • Küme (Set): Sırasız, benzersiz öğeler koleksiyonu. İşlemler: ekleme, silme, var olup olmadığını kontrol, birleşim, kesişim, fark.
    var set: Set<Int> = [1, 2, 3] // Swift'te örnek küme
    set.insert(4)
    let containsTwo = set.contains(2)
    
  • Ağaç (Tree): Hiyerarşik veri yapısı, düğümlerden oluşur ve kenarlarla bağlanır. Kök düğüm ve alt düğümler içerir.
    • İkili ağaç (Binary Tree)
    • İkili arama ağacı (Binary Search Tree - BST)
    • Dengeli ikili ağaç (Balanced Binary Tree) - AVL, kırmızı-siyah ağaç
    • B-Agacı (B-Tree)
  • Graf (Graph): Düğümler (kesişen noktalar) ve kenarlar (bağlantılar) kümesi. Yönlü veya yönsüz, ağırlıklı veya ağırlıksız olabilir.

Bu veri yapılarını anlamak, verimli ve ölçeklenebilir kod yazmak için kritiktir. Doğru yapıyı seçmek, performans gereksinimleri (arama, ekleme, silme) ve verilerin doğasına bağlıdır.