Sobes.tech
Intern

რა მონაცემთა სტრუქტურებია?

sobes.tech AI

პასუხი AI-სგან

Түбөлүк негизги маалымат структуралары бар:

Примитивдүү (Primitive):

  • Бүтүн сандар (Integer)
  • Улам-улам сан (Floating-point numbers)
  • Буль (Boolean)
  • Белгилер (Character)

Абстракттуу (Abstract):

  • Массив (Array): Бир типтеги элементтердин реттелген топтому, индекс аркылуу жетүү менен туруктуу убакытта иштейт.
  • Байланыштуу тизмек (Linked List): Элементтердин топтому, ар бири маалымат жана кийинки элементке шилтеме камтыйт. Баштан/аягынан кошуу/алуу эффективдүү, индекс аркылуу жетүү - $O(n)$.
    • Бир тараптуу (Singly Linked List)
    • Эки тараптуу (Doubly Linked List)
    • Айланма (Circular Linked List)
  • Стек (Stack): LIFO (Last-In, First-Out) маалымат структурасы. Операциялар: push (кошуу), pop (алуу), peek (жогорку элементти көрүү).
    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) маалымат структурасы. Операциялар: enqueue (кошуу), dequeue (алуу), peek (биринчи элементти көрүү).
    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 Table) / Сөздүк (Dictionary) / Байланыштуу массив (Associative Array): ачкыч-баа жуптарынын топтому, эффективдүү издөө, кошуу жана өчүрүү үчүн хеш-функцияны колдонуу менен.
    var dictionary = [String: Any]() // Swiftте сөздүк мисалы
    dictionary["key1"] = "value1"
    let value = dictionary["key1"]
    
  • Жыйнак (Set): Тартипсиз жыйнак уникалдуу элементтерден турат. Операциялар: кошуу, өчүрүү, бар экенин текшерүү, бириктирүү, кесилиш, айырма.
    var set: Set<Int> = [1, 2, 3] // Swiftте жыйнак мисалы
    set.insert(4)
    let containsTwo = set.contains(2)
    
  • Ағаш (Tree): Иерархиялык структура, түйүндөрдөн турат, алардын ортосунда байланыштар бар. Тамыр түйүн жана балдар:
    • Ике дарак (Binary Tree)
    • Ике дарак издөө (Binary Search Tree - BST)
    • Тең салмактуу дарак (Balanced Binary Tree) - AVL, кызыл-кара дарак
    • B-дарагы (B-Tree)
  • Граф (Graph): Түйүндөр (вуздар) жана байланыштар (жолдор) топтому, алар туташтырат. Багытталган же багытталбаган, салмактуу же салмаксыз болушу мүмкүн.

Бул структураларды түшүнүү эффективдүү жана масштабдуу код жазуу үчүн маанилүү. Туура маалымат структурасын тандоо операциялардын аткаруу талаптарына жана маалыматтын табигатына көз каранды.