Intern
Millised andmestruktuurid eksisteerivad?
sobes.tech AI
Vastus AI-lt
Järgnevad peamised andmestruktuurid on:
Esmased (Primitive):
- Täisarvud (Integer)
- Ujuv punktarvud (Floating-point numbers)
- Boolean väärtused (Boolean)
- Tähemärgid (Character)
Kuvanduvad (Abstract):
- Massiiv (Array): Järjestaud kogumik ühe tüüpi elementidest, juurdepääs indeksiga konstantse ajaga.
- Seotud nimekiri (Linked List): Kogum sõlmedest, igaüks sisaldab andmeid ja viidet järgmisele sõlmele. Lisamine/eemaldamine algusest/lõpus on tõhus, juurdepääs indeksiga - $O(n)$.
- Ühe- seotud (Singly Linked List)
- Kahe- seotud (Doubly Linked List)
- Tsükliline (Circular Linked List)
- Kast (Stack): Andmestruktuur LIFO (Last-In, First-Out). Tegevused: push (lisamine), pop (eemaldamine), peek (vaade ülemisele elemendile).
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 } } - Järjekord (Queue): FIFO (First-In, First-Out) andmestruktuur. Tegevused: enqueue (lisamine), dequeue (eemaldamine), peek (vaade esimesele elemendile).
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-tabel (Hash Table) / Sõnastik (Dictionary) / Assotsiatiivne massiiv (Associative Array): Paari "võti-väärtus" kogumik, mis võimaldab tõhusat otsingut, lisamist ja kustutamist võtme järgi, kasutades hash-funktsiooni.
var dictionary = [String: Any]() // Näide sõnastikust Swiftis dictionary["key1"] = "value1" let value = dictionary["key1"] - Juurdepääsukogum (Set): Mittekorraldatud unikaalsete elementide kogum. Toetab operatsioone: lisamine, eemaldamine, kontroll olemasolu, ühendamine, lõikumine, erinevus.
var set: Set<Int> = [1, 2, 3] // Näide kogumist Swiftis set.insert(4) let containsTwo = set.contains(2) - Puu (Tree): Hierarhiline andmestruktuur, mis koosneb sõlmedest, mis on ühendatud servadega. Omab juursõlme ja alam-sõlmi.
- Binäärne puu (Binary Tree)
- Binääriotsingupuu (Binary Search Tree - BST)
- Tasakaalustatud binääriotsingupuu (Balanced Binary Tree) - AVL, punane-must puu.
- B-puu (B-Tree)
- Graaf (Graph): Väravate (sõlmede) ja servade kogum, mis ühendab sõlmi. Võib olla suunatud või suunamata, kaalutud või kaalutud.
Andmestruktuuride mõistmine on kriitiline tõhusa ja skaleeritava koodi kirjutamiseks. Õige andmestruktuuri valik sõltub operatsioonide (otsing, sisestamine, kustutamine) nõuetest ja andmete iseloomust.