Struktury danych Flashcards
Czym jest graf ?
Graf jest to podstawowy obiekt rozważań teorii grafów, struktura matematyczna służąca do badania i przedstawiania relacji pomiędzy obiektami. W uproszczeniu graf jest to zbiór wierzchołków które mogą być połączone w taki sposób, że każda krawędź zaczyna sie i kończy na którymś w wierzchołków.
Czym jest drzewo binarne ? (Binary tree)
Drzewo binarne jest drzewiastą strukturą danych w której każdy węzeł ma maksymalnie dwoje dzieci (childrens) - lewe dziecko (left child) oraz prawe dziecko (prawe dziecko).
Czym jest hashtable (Tablica mieszająca) ?
Hashtable jest to struktura danych która jest implementacją tablicy asocjacyjnej, korzystająca z funkcji haszujących do wyznaczania indeksu dla kluczy.
Podaj 2 zalety hashmapy
- Wyszukiwanie średnio (averange) zajmuje O(1)
2. Jako klucze może posłużyć wiele typów danych (muszą być haszowalne)
Podaj 4 wady hashmapy
- Wyszukiwanie w najgorszym przypadku (worst case scenario) zajmuje O(n)
- Jest nieposortowana, w przypadku wyszukiwania najmniejszego bądź największego klucza musimy przejść po wszystkich kluczach
- Jedno-kierunkowe wyszukiwanie, podczas gdy wyszukiwanie wartości po kluczu jest szybkie to wyszukiwanie w drugą stronę zajmie O(n)
- Nie są przyjazne cachowaniu - większość implementacji hashmapy używa struktury zwanej LinkedList, której cachowanie jest trudne w implementacji
Czym jest hash collision ?
Hash collision to sytuacja w której dwa różne klucze po haszowaniu wskazują na ten sam indeks.
Jakie są strategie obsługi hash collisons ?
- Separate chaining
2. Open adressing
Czym jest dynamiczna tablica (dynamic array) ?
Dynamic array to tablica która umożliwia operacje dodawania bądź usuwania elementów
Czym jest kolejka ? Jaki jest to rodzaj buforu ?
Kolejka to liniowa struktura danych w której nowe elementy są dopisywane na koniec kolejki a te z początku są przekazywane do dalszego przetwarzania.
Jest to bufor FIFO
Czym jest stos ? Jakie jest to typ bufora ?
Stos jest liniową strukturą danych w której dane dokładane są na wierz stosu i z wierzchołka stosu są pobierane do dalszego przetwarzania.
Jest to bufor typu LIFO.
Czym jest Linked list ?
Linked list to liniowa struktura danych w której kolejność danych nie jest określona poprzez ich fizyczne ułożenie w pamięci, a poprzez fakt że każdy element wskazuje na kolejny.