Sobes.tech
Intern

Кадом сохторҳои дода мавҷуданд?

sobes.tech AI

Ҷавоб аз AI

Зерӯратҳои асосии структураҳои додаҳо мавҷуданд:

Примитивӣ (Primitive):

  • Суммаҳои целӣ (Integer)
  • Суммаҳои бо нуқтаи пардохт (Floating-point numbers)
  • Арзиши Boolean (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): Ҷамъе аз нуқтаҳо (нодҳо) ва сӯрохиҳо (пайвандҳо), ки нуқтаҳоро пайваст мекунанд. Мутобиқ аст барои графҳо бо ё бе равиш, бо вазн ё бе.

Фаҳмидани ин структураҳои додаҳо барои навиштани кодҳои самаранок ва масштабшаванда муҳим аст. Интихоби структураи додаи дуруст вобаста ба талаботҳои иҷроиш (ҷустуҷӯ, ворид кардан, барҳам додан) ва хусусиятҳои додаҳо мебошад.