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ą