Sobes.tech
Junior

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