Intern
Milyen adatstruktúrák léteznek?
sobes.tech MI
Válasz az MI-től
A következő alapvető adatszerkezetek léteznek:
Primitív (Primitive):
- Egész számok (Integer)
- Lebegőpontos számok (Floating-point numbers)
- Logikai értékek (Boolean)
- Szimbólumok (Character)
Absztrakt (Abstract):
- Tömb (Array): Rendezett elemek gyűjteménye egy típusból, hozzáférés index alapján állandó idő alatt.
- Láncolt lista (Linked List): Csúcsok gyűjteménye, amelyek mindegyike tartalmaz adatokat és hivatkozást a következő csúcsra. Hatékony beszúrás/eltávolítás elején/végén, index szerinti hozzáférés - $O(n)$.
- Egyszerű láncolt lista (Singly Linked List)
- Kétszintű láncolt lista (Doubly Linked List)
- Körkörös láncolt lista (Circular Linked List)
- Verem (Stack): LIFO (Last-In, First-Out) adatszerkezet. Műveletek: push (hozzáadás), pop (eltávolítás), peek (felső elem megtekintése).
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 } } - Sor (Queue): FIFO (First-In, First-Out) adatszerkezet. Műveletek: enqueue (beszúrás), dequeue (eltávolítás), peek (első elem megtekintése).
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-tábla (Hash Table) / Szótár (Dictionary) / Asszociatív tömb (Associative Array): Kulcs-érték párok gyűjteménye, hatékony keresést, hozzáadást és törlést tesz lehetővé kulcs szerint, hash-függvény segítségével.
var dictionary = [String: Any]() // Példa szótár Swift-ben dictionary["key1"] = "value1" let value = dictionary["key1"] - Halmaz (Set): Rendezetlen gyűjtemény egyedi elemekből. Műveletek: hozzáadás, törlés, létezés ellenőrzése, unió, metszet, különbség.
var set: Set<Int> = [1, 2, 3] // Példa halmaz Swift-ben set.insert(4) let containsTwo = set.contains(2) - Fa (Tree): Hierarchikus adatszerkezet, csomópontokból áll, amelyek éleken keresztül kapcsolódnak. Van gyökércsomópont és leszármazottak.
- Bináris fa (Binary Tree)
- Bináris keresőfa (Binary Search Tree - BST)
- Egyensúlyozott bináris fa (Balanced Binary Tree) - AVL, vörös-fekete fa.
- B-fa (B-Tree)
- Graf (Graph): Csúcsok (csomópontok) és élek (kapcsolatok) halmaza, amelyek összekötik a csúcsokat. Lehet irányított vagy irányítatlan, súlyozott vagy súlyozatlan.
Ezeknek az adatszerkezeteknek a megértése kritikus a hatékony és skálázható kód írásához. A megfelelő adatszerkezet kiválasztása a műveletek (keresés, beszúrás, törlés) teljesítményigényeitől és az adatok jellegétől függ.