Jaké existují datové struktury?
sobes.tech AI
Odpověď od AI
Pole, seznamy, zásobníky, fronty, stromy, grafy, hash tabulky.
Pole: Kolekce prvků stejného typu, uložených v sousedních paměťových buňkách. Přístup přes index.
Seznam: Sekvenční kolekce prvků. Může být jednoduše nebo dvojitě spojena. Přidání/odstranění uprostřed je efektivnější než v poli.
Zásobník: Struktura LIFO (Last-In, First-Out). Operace: push (přidat), pop (odstranit z konce), peek (zobrazit vrchní prvek).
Fronta: Struktura FIFO (First-In, First-Out). Operace: enqueue (přidat na konec), dequeue (odstranit z začátku), peek (zobrazit první prvek).
Strom: Hierarchická datová struktura. Kořen, uzly, potomci. Příklad: binární vyhledávací strom.
Graf: Sada vrcholů (uzlů), spojených hranami. Může být orientovaný nebo neorientovaný, vážený nebo nevážený.
Hash tabulka: Kolekce párů klíč-hodnota. Používá hash funkci pro rychlý přístup (průměrně). Mohou nastat kolize.
Příklady použití v iOS:
- Pole:
Array - Seznamy: žádná vestavěná třída, implementují se na základě polí nebo vlastních struktur
- Zásobníky/Fronty: implementují se na základě polí nebo seznamů
- Stromy: používají se ve frameworkách, například v UI (hierarchie zobrazení)
- Grafy: pro reprezentaci spojení, například síťových grafů
- Hash tabulky:
Dictionary,Set
// Příklad pole
let numbers = [1, 2, 3, 4, 5]
print(numbers[0]) // Přístup přes index
// Příklad slovníku (hash tabulka)
let grades = ["Alice": 95, "Bob": 88]
print(grades["Alice"] ?? 0) // Přístup přes klíč