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): Ҷамъе аз нуқтаҳо (нодҳо) ва сӯрохиҳо (пайвандҳо), ки нуқтаҳоро пайваст мекунанд. Мутобиқ аст барои графҳо бо ё бе равиш, бо вазн ё бе.
Фаҳмидани ин структураҳои додаҳо барои навиштани кодҳои самаранок ва масштабшаванда муҳим аст. Интихоби структураи додаи дуруст вобаста ба талаботҳои иҷроиш (ҷустуҷӯ, ворид кардан, барҳам додан) ва хусусиятҳои додаҳо мебошад.