Elementarne struktury danych Piotr Prokopowicz

Slides:



Advertisements
Podobne prezentacje
ALGORYTMY I STRUKTURY DANYCH
Advertisements

STRUKTURY DANYCH.
Sortowanie przez scalanie
Algorytmy sortowania i porządkowania
Algorytmy – c.d. złożoność algorytmów struktury danych
Algorytmy – c.d. struktury danych złożoność algorytmów
Standardowa biblioteka języka C++
Zaawansowane techniki algorytmiczne
Grażyna Mirkowska PJWSTK, 10 stycznia 2001
ALGORYTMY GRAFOWE.
Dynamiczne struktury danych Listy, Kolejki, Stosy
Grażyna Mirkowska PJWSTK 15 listopad 2000
Wykład 10 Metody Analizy Programów Specyfikacja Struktur Danych
PROGRAMOWANIE STRUKTURALNE
ALGORYTMY I STRUKTURY DANYCH
ALGORYTMY I STRUKTURY DANYCH
ALGORYTMY GEOMETRYCZNE.
Repetitio est mater studiorum
Kurs Pascala – spis treści
Model danych oparty na listach
Dynamiczne struktury danych 1
Analiza kosztu zamortyzowanego
dr Anna Kwiatkowska Instytut Informatyki
Typy wskaźnikowe, dynamiczne struktury danych
ALGORYTMY I STRUKTURY DANYCH
Podstawy programowania II
Algorytmy i struktury danych
Zbiór do posortowania mieści się w pamięci
Podstawy programowania
Podstawy programowania II
Operacje na strukturach listowych
DRZEWA BINARNE Emilia Krukowska.
Bazy danych.
Budowanie tabel i relacji
Listy, stosy i kolejki..
Złożone typy danych Listy Tworzenie elastycznych baz danych
Rodzaje, przechodzenie grafu
ALGORYTM. SCHEMATY BLOKOWE. KONSTRUKCJE PROGRAMU, PODPROGRAMY, FUNKCJE
Programowanie obiektowe Wykład 3 dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/21 Dariusz Wardowski.
Programowanie obiektowe Wykład 6 dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/14 Dariusz Wardowski.
Wybrane zagadnienia relacyjnych baz danych
Programowanie obiektowe 2013/2014
Informatyka PDF Wykład 12.
ZWIĄZKI MIĘDZY KLASAMI KLASY ABSTRAKCYJNE OGRANICZENIA INTERFEJSY SZABLONY safa Michał Telus.
Dynamiczne struktury danych
Algorytmy i Struktury Danych
Algorytmy i Struktury Danych
System plików.
Systemy informatyczne wprowadzenie
Algorytmy i struktury danych
Powtórzenie wyk ł adu 10 Fizyczna organizacja danych w bazie danych. Indeksy.
Algorytmy i Struktury Danych Struktury Danych
Teoretyczne Podstawy Informatyki - Rok I - kierunek IS w IFAiIS UJ – 2006/ /11/2006Prof. dr hab. Elżbieta Richter-Wąs Wykład 6 Model danych oparty.
Wykład 2 Programowanie obiektowe. Programowanie obiektowe wymaga dobrego zrozumienia działania funkcji definiowanych przez użytkownika, w ten sposób będziemy.
INFORMATYKA DANE
Zbiory dynamiczne.
ALGORYTMY I STRUKTURY DANYCH
STOS. STL (ang. Standard Template Library) jest to biblioteka zawierająca algorytmy, pojemniki, iteratory oraz inne konstrukcje w formie szablonów, gotowe.
Indeksy drzewiaste. ISAM ISAM - INDEXED SEQUENTIAL ACCESS METHOD Problem: –Dany jest plik uporządkowany – w jaki sposób zrealizować efektywnie zapytanie.
Typy wyliczeniowe, kolekcje
Rozdział 5 REKURENCJA.
Listy.
Programowanie Obiektowe – Wykład 5
Kolejka priorytetowa.
Zbiory rozłączne.
Programowanie Obiektowe – Wykład 2
Indeksy.
ALGORYTMY I STRUKTURY DANYCH
ALGORYTMY I STRUKTURY DANYCH
ALGORYTMY I STRUKTURY DANYCH
Zapis prezentacji:

Elementarne struktury danych Piotr Prokopowicz

Plan wykładu Zmienna, tablica, rekord, wskaźnik Abstrakcyjne typy danych (ang. abstract data types) Stos i kolejka Listy

Podstawy Zmienna – pudełko do przechowywania wartości Tablica – ponumerowany szereg pudełek Rekord/struktura – wiązanie pudełek (różnych) w jedną paczkę Wskaźnik – gdzie jest pudełko? Struktura danych (ang. data structure) - sposób przechowania i wykorzystania informacji w komputerze.

Zbiory dynamiczne Na zbiorach dynamicznych operują algorytmy W odróżnieniu od zbiorów w kontekście matematycznym – zbiory dynamiczne mogą się powiększać, zmniejszać zmieniać w różny sposób. Elementem zbioru dynamicznego jest obiekt, który można odczytać oraz zmienić, dysponując wskaźnikiem do niego. Wyróżnione pole obiektu (nie w każdym zbiorze) - klucz – istotne ze względu na realizację zbioru. W elemencie mogą być inne pola, wskaźniki, mniej lub bardziej istotne ze względu na dostęp. Porównywalność kluczy (liniowy porządek) - częste przyjmowane założenie.

Typowe operacje Typowe operacje: zapytania, operacje modyfikujące. S-zbiór, k-klucz, x-element lub wskaźnik do elementu, NIL(NULL) – element nie istnieje SEARCH(S,k) – zapytanie INSERT(S,x) – modyfikacja MINIMUM(S) – zapytanie DELETE(S,x) – modyfikacja MAXIMUM(S) – zapytanie SUCCESOR(S,x) – zapytanie o najmniejszy element większy od x PREDECESOR(S,x) – zapytanie o największy element mniejszy od x Zbiory co najmniej z operacjami: INSERT, DELETE, FIND(S,x) – słowniki.

ADT (abstrakcyjny typ danych) ADT – model (bez szczegółów implementacji) z powiązaną z nim listą operacji. Zbiór dynamiczny w kontekście realizacji komputerowej. Idea klasy w programowaniu obiektowym. Przykład: Liczby całkowite wraz z operacjami. Argumentami operacji także mogą być ADT. Operacje: działania matematyczne, sprawdzanie czy argument jest liczbą całkowitą, różne działania nie tylko matematyczne związane ze specyfiką modelu W komputerze: Typ danych np. integer (lub int)– przechowywanie danych Operacje – implementacja poprzez procedury Struktura danych – przechowanie złożonej informacji w komputerze

Lista Lista – skończony ciąg elementów q = [x1, x2, ... xn] Skrajne elementy listy – końce : lewy - x1, prawy - xn Wielkość listy – długość (rozmiar) |q| = n Szczególny przypadek listy – lista pusta |q| = 0 , q=[ ] Podstawowe operacje: INSERT (x) – dołączenie elementu x do listy DELETE (x) – usunięcie elementu x z listy

Stos Stos (ang. last-in first-out, LIFO) Operacje na stosie: INSERT(x) – PUSH (x) – wstawianie argumentu operacji na stos DELETE – POP – usuwanie – zdjęcie ze stosu (bez argumentu) Wykorzystanie stosu

Kolejka Kolejka (ang. first-in first-out, FIFO) Operacje na kolejce: Początek – głowa Koniec - ogon Operacje na kolejce: INSERT (x) – ENQUEUE (x) – wstawianie DELETE – DEQUEUE – zdjęcie z kolejki (bez argumentu) Wykorzystanie kolejki

Lista z dowiązaniami (wskaźnikowa, dynamiczna) STATYCZNIE a DYNAMICZNIE w kontekście implementacji Lista z dowiązaniami – elementy listy ułożone w liniowym porządku Porządek jest wyznaczany (inaczej niż w tablicy, nie przez indeks) przez wskaźniki, będące składowymi poszczególnych elementów listy. Pierwszy element – głowa, ostatni – ogon Lista z dowiązaniami jest strukturą pozwalającą na realizację wszystkich podstawowych operacji (niekoniecznie optymalnie) na zbiorach dynamicznych nil HEAD klucz poprz nast 5 20 8

Różne listy Dwukierunkowa, jednokierunkowa Uporządkowana, posortowana – kolejność zgodna z porządkiem na kluczach Cykliczna – głowa wskazuje na ogon a ogon na głowę Wartownik – uproszczenie warunków brzegowych, skracanie czasu operacji

Struktury wskaźnikowe Rekordy z wskaźnikami – reprezentowanie ukorzenionych drzew binarnych Reprezentowanie dowolnych ukorzenionych drzew Reprezentowanie grafów Generacja języka – sposób komunikowania się programisty z komputerem

Koniec Dziękuję za uwagę