« poprzedni punkt    następny punkt »



Streszczenie wykładu 10

Wykład VI był poświęcony podstawowym strukturom danych. Omawialiśmy przede wszystkim struktury stosów i kolejek. W następnych wykładach wiele uwagi poświęciliśmy różnym typom drzew. Zarówno drzewa BST, AVL jak i kopce służyły do reprezentowania zbiorów skończonych. Szczególna organizacja elementów (etykiet wierzchołków) w tych drzewach służyła łatwiejszemu wykonywaniu operacji wstawiania nowych elementów, usuwania i wyszukiwania. Wspólną cechą tych struktur drzewiastych był liniowy porządek w zbiorze przechowywanych elementów. To właśnie ten porządek umożliwiał taką organizację etykiet rozważanych drzew, że każde wstawienie elementu można było wykonać z kosztem średnim logarytmicznym względem liczby etykiet.  Te trzy struktury możemy traktować jako szczególne implementacje struktury kolejek priorytetowych. Specyfikacja tej abstrakcyjnej struktury jest tematem pierwszego punktu wykładu. Najprostszym zastosowaniem struktury kolejek priorytetowych jest sortowanie. W drugim punkcie wykłady przedstawimy algorytm Dijkstry rozdzielania zbioru, działający w środowisku kolejek priorytetowych. Jest to doskonały przykład wykorzystania dziedziczenia w programowaniu i korzystania z właściwości odziedziczonej klasy, a dokładniej z jej specyfikacji bez zagłębiania się w szczegóły implementacji.

Dalsze punkty wykładu są poświęcone jeszcze jednej strukturze danych służącej do reprezentowania zbiorów skończonych i umożliwiającej podstawowe operacje teoriomnogościowe na zbiorach - słownikom. Podczas gdy, pozycja elementu w dowolnej kolejce priorytetowej (np. w drzewie BST) zależy od relacji porządku liniowego i od relacji elementu względem innych w zbiorze, w strukturze słownika nie zakładamy istnienia relacji porządkującej, a pozycja elementu w zbiorze jest wyliczana na podstawie wartości tego elementu.   W punkcie trzecim wykładu przedstawimy ogólne właściwości tej abstrakcyjnej struktury danych, a następnie zajmiemy się specjalnym typem modeli  zwanych tablicami haszującymi.  To co wyróżnia tablice haszujące wśród innych struktur, to prostota implementacji i koszt operacji, który jest niezależny od liczby elementów reprezentowanych w strukturze. Tablice haszujące są z tego względu jedną z najczęściej wykorzystywanych struktur danych.

« poprzedni punkt    następny punkt »