Millised andmestruktuurid eksisteerivad?
sobes.tech AI
Vastus AI-lt
Massiivid, nimekirjad, virnad, järjekorrad, puud, graafid, hajutustabelid.
Massiiv: Ühe tüüpi elementide kogum, mis asuvad järjestikustes mälukohades. Juurdepääs indeksi kaudu.
Nimekiri: Järjepidev elementide kogum. Võib olla ühesuunaline või kahepoolne. Lisamine/kustutamine keskelt on tõhusam kui massiivis.
Virn: LIFO-struktuur (Last-In, First-Out). Tegevused: push (lisamine), pop (kustutamine lõpus), peek (vaatamine ülaelemendist).
Järjekord: FIFO-struktuur (First-In, First-Out). Tegevused: enqueue (lisamine lõppu), dequeue (kustutamine algusest), peek (vaatamine esimesele elemendile).
Puu: Hierarhiline andmestruktuur. Juure, sõlmede, järglastega. Näide: kaheharuline otsingupuu.
Graaf: Väravate (sõlmede) kogum, mis on ühendatud servadega. Võib olla suunatud või suunamata, kaalutud või kaalutlemata.
Hajutustabel: Paari võtme-väärtuse kogum. Kasutab hajufunktsiooni kiireks juurdepääsuks (keskmiselt). Võivad esineda kokkupõrked.
Näited kasutusest iOS-is:
- Massiivid:
Array - Nimekirjad: sisseehitatud klassi ei ole, implementeeritakse massiivide või kasutaja struktuuride põhjal
- Virnad/Järjekorrad: implementeeritakse massiivide või nimekirjade põhjal
- Puu: kasutatakse raamistikudes, näiteks UI-s (vaadete hierarhia)
- Graafid: ühenduste esitamiseks, näiteks võrgugraafid
- Hajutustabelid:
Dictionary,Set
// Näide massiivist
let numbers = [1, 2, 3, 4, 5]
print(numbers[0]) // Juurdepääs indeksiga
// Näide sõnastikust (hajutustabel)
let grades = ["Alice": 95, "Bob": 88]
print(grades["Alice"] ?? 0) // Juurdepääs võtmega