Sobes.tech
Junior

Kokios duomenų struktūros egzistuoja?

sobes.tech AI

Atsakymas iš AI

Masyvai, sąrašai, stekai, eilės, medžiai, grafai, maišos lentelės.

Masyvas: Elementų, vieno tipo, kolekcija, saugoma šalia viena kitos atminties vietose. Prieiga per indeksą.

Sąrašas: Sekvencinė elementų kolekcija. Gali būti viengubi arba dvigubi susieti. Pridėjimas/pašalinimas viduryje yra efektyvesnis nei masyve.

Stekas: LIFO (Last-In, First-Out) struktūra. Operacijos: push (pridėti), pop (pašalinti iš pabaigos), peek (pažiūrėti viršutinį elementą).

Eilė: FIFO (First-In, First-Out) struktūra. Operacijos: enqueue (pridėti į galą), dequeue (pašalinti iš pradžios), peek (pažiūrėti pirmą elementą).

Medis: Hierarchinė duomenų struktūra. Šaknis, mazgai, palikuonys. Pavyzdys: dvejetainis paieškos medis.

Grafas: Vertsnių (mazgų) rinkinys, sujungtas briaunomis. Gali būti nukreiptas arba nenukreiptas, sveriotas arba nesveriotas.

Hash lentelė: Rinkinys porų raktas-reikšmė. Naudoja hash funkciją greitam pasiekti (vidutiniškai). Gali būti kolizijų.

Pavyzdžiai naudojimo iOS:

  • Masyvai: Array
  • Sąrašai: nėra įmontuoto klases, įgyvendinami remiantis masyvais arba naudotojo sukurtais struktūromis
  • Stekai/Eilės: įgyvendinami remiantis masyvais arba sąrašais
  • Medžiai: naudojami framework'uose, pvz., UI (vaizdų hierarchija)
  • Grafai: ryšių atvaizdavimui, pvz., tinklai
  • Hash lentelės: Dictionary, Set
// Pavyzdys masyvas
let numbers = [1, 2, 3, 4, 5]
print(numbers[0]) // Prieiga per indeksą

// Pavyzdys žodynas (hash lentelė)
let grades = ["Alice": 95, "Bob": 88]
print(grades["Alice"] ?? 0) // Prieiga per raktą