Sobes.tech
Intern

Qaysi ma'lumotlar tuzilmalari mavjud?

sobes.tech AI

AIdan javob

Asosiy ma'lumotlar tuzilmalari quyidagilardir:

Primitive:

  • Butun sonlar (Integer)
  • Oqimli sonlar (Floating-point numbers)
  • Boolean qiymatlar (Boolean)
  • Belgilar (Character)

Abstract:

  • Array: Bir xil turdagi elementlarning tartiblangan to'plami, indeks bo'yicha kirish uchun vaqt o'rtacha.
  • Linked List: Har biri ma'lumot va keyingi tugunga havolani o'z ichiga olgan tugunlar to'plami. Boshlash/oxirida qo'shish/olish samarali, indeks bo'yicha kirish - $O(n)$.
    • Yagona bog'langan ro'yxat (Singly Linked List)
    • Ikki bog'langan ro'yxat (Doubly Linked List)
    • Aylana bog'langan ro'yxat (Circular Linked List)
  • Stack: LIFO (Last-In, First-Out) tuzilma. Operatsiyalar: push (qo'shish), pop (olish), peek (yuqoridagi elementni ko'rish).
    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
        }
    }
    
  • Queue: FIFO (First-In, First-Out) tuzilma. Operatsiyalar: enqueue (qo'shish), dequeue (olish), peek (birinchi elementni ko'rish).
    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 jadvali (Hash Table) / Lug'at (Dictionary) / Asosiy massiv (Associative Array): Kalit-qiymat juftliklari to'plami, kalit bo'yicha samarali qidirish, qo'shish va o'chirish imkonini beradi.
    var dictionary = [String: Any]() // Swiftda lug'at misoli
    dictionary["key1"] = "value1"
    let value = dictionary["key1"]
    
  • Set: Tartibsiz, noyob elementlar to'plami. Operatsiyalar: qo'shish, o'chirish, mavjudligini tekshirish, birlashma, kesishma, farq.
    var set: Set<Int> = [1, 2, 3] // Swiftda set misoli
    set.insert(4)
    let containsTwo = set.contains(2)
    
  • Tree: Hierarxik ma'lumotlar tuzilmasi, tugunlar va ularni bog'laydigan bog'lar bilan tashkil topgan. Asosiy tugun va bolalar tugunlar.
    • Ikki tomonli daraxt (Binary Tree)
    • Ikki tomonli qidiruv daraxti (Binary Search Tree - BST)
    • Muvozanatli ikki tomonli daraxt (Balanced Binary Tree) - AVL, qizil-siyoh daraxti
    • B-daraxt (B-Tree)
  • Graf: Tugunlar (vertices) va bog'lar (edges) to'plami, ular orqali tugunlar bog'lanadi. Yo'naltirilgan yoki yo'naltirilmagan, og'irlikli yoki og'irliksiz bo'lishi mumkin.

Ushbu ma'lumotlar tuzilmalarini tushunish samarali va kengaytiriladigan kod yozish uchun juda muhimdir. To'g'ri tuzilmani tanlash, operatsiyalarning ishlash tezligi (qidirish, qo'shish, o'chirish) va ma'lumotlarning tabiati bilan bog'liq.