Sobes.tech
Junior

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