Jakie istnieją struktury danych?
sobes.tech AI
Odpowiedź od AI
Tablice, listy, stosy, kolejki, drzewa, grafy, tablice haszujące.
Tablica: Kolekcja elementów tego samego typu, przechowywanych w sąsiadujących komórkach pamięci. Dostęp przez indeks.
Lista: Sekwencyjna kolekcja elementów. Mogą być jednokierunkowe lub dwukierunkowe. Dodawanie/usuwanie w środku jest bardziej wydajne niż w tablicy.
Stos: Struktura LIFO (Last-In, First-Out). Operacje: push (dodać), pop (usunąć z końca), peek (zobaczyć górny element).
Kolejka: Struktura FIFO (First-In, First-Out). Operacje: enqueue (dodać na koniec), dequeue (usunąć z początku), peek (zobaczyć pierwszy element).
Drzewo: Hierarchiczna struktura danych. Korzeń, węzły, potomkowie. Przykład: drzewo binarne wyszukiwania.
Graf: Zbiór wierzchołków (węzłów), połączonych krawędziami. Może być skierowany lub nieskierowany, ważony lub nieważony.
Tablica haszująca: Kolekcja par klucz-wartość. Używa funkcji hash do szybkiego dostępu (średnio). Mogą wystąpić kolizje.
Przykłady użycia w iOS:
- Tablice:
Array - Listy: brak wbudowanej klasy, implementowane na podstawie tablic lub struktur własnych
- Stosy/Kolejki: implementowane na podstawie tablic lub list
- Drzewa: używane w frameworkach, np. w UI (hierarchia widoków)
- Grafy: do reprezentacji powiązań, np. sieciowych
- Tablice haszujące:
Dictionary,Set
// Przykład tablicy
let numbers = [1, 2, 3, 4, 5]
print(numbers[0]) // Dostęp przez indeks
// Przykład słownika (tablica haszująca)
let grades = ["Alice": 95, "Bob": 88]
print(grades["Alice"] ?? 0) // Dostęp przez klucz