Pobierz prezentację
Pobieranie prezentacji. Proszę czekać
1
dr Anna Kwiatkowska Instytut Informatyki
Struktury danych dr Anna Kwiatkowska Instytut Informatyki
2
Struktury danych każdy algorytm, każdy program, operuje na różnorodnych danych mają one przeważnie określoną formę zapewniającą mu pożądane właściwości do ich przechowywania i dalszej obróbki potrzebne jest ich zapamiętanie stworzenie dodatkowych algorytmów zapewniających dostęp do wszystkich elementów umożliwiających modyfikację zawartości zbioru
3
Struktury danych struktury danych, są zaawansowanymi pojemnikami na dane, które gromadzą je i układają w odpowiedni sposób ich różnorodność jest ogromna, a dla każdej znaleziono wiele zastosowań oraz interesujących algorytmów powszechnie spotykane jest używanie jednych struktur danych do przetwarzania informacji zgromadzonych w innych są one fundamentalnym narzędziem programisty i ich znajomość jest niezbędna
4
To proste stwierdzenie genialnie opisuje istotę problemu:
programy = algorytmy + struktury danych Ucząc się algorytmiki nie wolno zapomnieć o strukturach danych informatyk szwajcarski, profesor Niklaus Wirth (twórca języka Pascal i Modula-2)
5
Podstawowe struktury danych
Stosy Kolejki Listy Drzewa Grafy
6
STOS – Last In First Out liniowa struktura danych, w której dostęp jest tylko do wierzchołka stosu do elementu stosu poniżej wierzchołka jest dostęp tylko po zdjęciu elementów znajdujących się między nim a wierzchołkiem
7
Stos Możliwe są następujące operacje:
push(S,e) = (e, en, en-1, …, e1) odłożenie na stos pop(S) = (en-1, en-2, …, e1) usunięcie ze stosu top(S)=en pobranie ze stosu empty(S) n=0 sprawdzenie czy stos pusty
8
Stos pusty dno
9
Stos
10
Stos
11
Stos
12
Stos
13
Stos
14
Stos
15
Stos PEŁNY!
16
Stos Co tu jest???
17
Stos
18
Stos
19
Stos
20
Stos ?
21
Stos
22
Zastosowanie stosu - ONP
Notacja polska odwrotna jest sposobem zapisu wyrażeń arytmetycznych, w których znak wykonywanej operacji umieszczony jest po operandach (zapis postfiksowy) a nie pomiędzy nimi jak w zapisie algebraicznym (zapis infiksowy) Nie wymaga ona używania w wyrażeniach nawiasów Sprawia to, że obliczenia w ONP stają się bardzo łatwe do przeprowadzania na komputerze.
23
ONP Zarówno: algorytm konwersji notacji konwencjonalnej na odwrotną notację polską (ang. Reverse Polish Notation - RPA) algorytm obliczania wartości wyrażenia danego w notacji odwrotnej polskiej wykorzystują stos i są stosunkowo łatwe do zaprogramowania. ((2+3)*5-7)/6 * 7 – 6 /
24
2 3 + 5 * ONP 7 - 6 / /
25
3 + 2 5 * 7 ONP - 6 / /
26
+ 2 5 3 * 7 ONP - 6 / /
27
+ 2 5 3 * 7 ONP - 6 / /
28
5 5 * 7 ONP - 6 / /
29
5 5 * 7 ONP - 6 / /
30
* 5 5 7 ONP - 6 / /
31
25 7 ONP - 6 / /
32
25 7 ONP - 6 / /
33
- 25 7 ONP 6 / /
34
18 ONP 6 / /
35
18 6 ONP /
36
/ 18 6 ONP
37
3 ONP
38
Kolejka FIFO(First In First Out)
liniowa struktura, w której nowe dane dopisywane są na końcu kolejki, a z początku kolejki pobierane są dane do dalszego przetwarzania dostęp do danych jest w takiej kolejności, w jakiej zostały zapisane
39
FIFO
40
FIFO
41
FIFO
42
FIFO
43
FIFO
44
FIFO
45
FIFO
46
FIFO
47
FIFO ODJECHALI!!!
48
Rodzaje kolejek kolejkę spotyka się przede wszystkim w sytuacjach związanych z różnego rodzaju obsługą zdarzeń w systemach operacyjnych ma zastosowanie kolejka priorytetowa, przydzielająca zasoby sprzętowe uruchomionym procesom
49
Rodzaje kolejek kolejka priorytetowa – każda ze znajdujących się w niej danych dodatkowo ma przypisany priorytet, który modyfikuje kolejność późniejszego wykonania oznacza to, że pierwsze na wyjściu niekoniecznie pojawią się te dane, które w kolejce oczekują najdłużej, lecz te o największym priorytecie.
50
Kolejka priorytetowa 5 3 1 procesor
51
Kolejka priorytetowa 5 3 1 procesor
52
Kolejka priorytetowa 3 1 procesor
53
Kolejka priorytetowa 1 procesor
54
gdzie NumAllocated jest wielkością tablicy
Kolejka cykliczna pierwszy element tablicy o indeksie 0 uważany jest za następny w stosunku do elementu ostatniego generalnie następnym w stosunku do elementu o indeksie N jest element o indeksie (N+1) mod NumAllocated gdzie NumAllocated jest wielkością tablicy
55
Kolejka cykliczna początek kolejki
56
Kolejka cykliczna początek kolejki
57
Kolejka cykliczna początek kolejki
58
Kolejka cykliczna początek kolejki
59
Kolejka cykliczna początek kolejki
60
Kolejka cykliczna początek kolejki
61
Kolejka cykliczna początek kolejki
62
Kolejka cykliczna początek kolejki
63
Kolejka cykliczna początek kolejki
64
Kolejka cykliczna początek kolejki
65
Kolejka cykliczna początek kolejki
66
Lista Lista jest to liniowo uporządkowany zbiór elementów, z którego w dowolnym miejscu można usunąć element, jak również dołączyć w dowolne miejsce Rodzaje list: - jednokierunkowa - dwukierunkowa - cykliczna
67
Dodawanie elementu do listy
K R A
68
Dodawanie elementu do listy
B K R A
69
Dodawanie elementu do listy
B R K A
70
Dodawanie elementu do listy
B R K A
71
Dodawanie elementu do listy
B K R A
72
Dodawanie elementu do listy
K R B A
73
Usuwanie elementu z listy
K R A
74
Usuwanie elementu z listy
R K A
75
Usuwanie elementu z listy
R K A
76
Drzewa Drzewo jest hierarchicznym ułożeniem danych.
DEF. Drzewo jest to zbiór T jednego lub więcej elementów zwanych węzłami takich, że: Istnieje jedne wyróżniony węzeł zwany korzeniem drzewa. Pozostałe węzły są podzielone na m0 rozłącznych zbiorów T1, …, Tm, z których każdy jest drzewem. Drzewa T1, …, Tm nazywane są poddrzewami korzenia
77
Drzewa Pierwszy obiekt zwany jest korzeniem, kolejne obiekty są jego potomstwem i nazywane są węzłami Liście są to węzły nie mające potomstwa. Droga w drzewie – sekwencja węzłów w drzewie odpowiadających przejściu w kierunku od korzenia do liścia.
78
Drzewa każdy węzeł y leżący na ścieżce z korzenia do węzła x nazywamy przodkiem węzła x węzeł x jest wtedy potomkiem węzła y jeśli xy dodajemy słowo właściwym, gdyż każdy węzeł jest jednocześnie swoim przodkiem i potomkiem bezpośredni potomkowie nazywani są jego synami węzeł zaś jest ojcem
79
Drzewa Długość ścieżki od korzenia do węzła x nazywamy głębokością węzła x w drzewie T Największa głębokość węzła w drzewie T jest wysokością drzewa T
80
Drzewa A E B C D F G H I głębokość 1 głębokość 2 głębokość 3
głębokość 4 = wysokość drzewa
81
Drzewa korzeń gałąź liść węzeł wewnętrzny
82
Rodzaje drzew Drzewa binarne;
BST (Binary Search Tree) – binarne drzewo poszukiwań; Drzewa czerwono-czarne; Drzewa AVL; B – drzewa.
83
Drzewa binarne drzewo, w którym ojciec może mieć co najwyżej dwóch synów nazywa się drzewem binarnym każdy węzeł może mieć prawego oraz lewego następnika i to położenie ma znaczenie
84
Drzewo BST Drzewo BST (Binary Search Tree) jest to drzewo binarne o takiej strukturze danych, która pozwala na szybkie wyszukiwanie podanego elementu w drzewie W drzewach BST panuje następujący porządek: jeżeli y jest węzłem w lewym poddrzewie węzła x, wtedy y< x jeżeli y jest węzłem w prawym poddrzewie węzła x, wtedy y> x
85
Przykład drzewa BST korzeń 45 35 56 49 70 21 40 10 50 Liście:
10, 40, 50, 70
86
Grafy według jednej z anegdot pewien matematyk po kilku latach wytężonej pracy wybiegł nagle na ulicę bez ubrania krzycząc „EUREKA!!!” gdy nieco ochłonął stwierdził z przejęciem, że wynalazł taką dziedzinę matematyki, która nigdy nie znajdzie praktycznego zastosowania
87
Graf to system G=(V,E), gdzie: V – zbiór (skończony) wierzchołków G
Grafy chodziło mu o to, co dzisiaj nazywamy teorią grafów trudno dziś znaleźć dziedzinę, w której grafy nie mogłyby się okazać przydatne Graf to system G=(V,E), gdzie: V – zbiór (skończony) wierzchołków G E – zbiór krawędzi G
88
Grafy W grafie skierowanym (zorientowanym) E jest relacją binarną w V
W grafie nie skierowanym (niezorientowanym) E jest to zbiór nieuporządkowanych par wierzchołków Zapis (u,v) i (v,u) oznaczają tę samą krawędź W grafie nieskierowanym nie mogą występować pętle
89
Przykład grafu skierowanego
V = {1,2,3,4,5,6} E = {(1,2), (2,2), (2,4), (4,1), (4,5), (5,4), (6,3)} 1 2 3 4 5 6
90
Przykład grafu nie skierowanego
V = {1,2,3,4,5,6} E = {(1,2), (1,5), (2,5), (3,6)} 4 – wierzchołek izolowany 1 2 3 4 5 6
91
Grafy wierzchołki grafu zwykle są numerowane i mogą stanowić reprezentację jakichś obiektów rzeczywistych krawędzie mogą obrazować połączenia między takimi obiektami krawędź może posiadać także wagę, to znaczy liczbę, która reprezentuje jakąś informację
92
Grafy wszystkie drogi w tym grafie są proste nie ma cykli
istnieją dwie drogi o długości 4 5 1 4 2 6 3 7
93
Przykład W pewnym przedsiębiorstwie zaistniała potrzeba zabezpieczenia dyżurów na portierni w godz oczywiście po jak najmniejszych kosztach. Zgłosiło się kilku chętnych: Nazwisko wolne godziny cena za godz. Kos 9-12 5 Lis 9-10, 12-14 6.50 Kruk 12-15 7 Kot 10-12, 14-15 6
94
droga1=15 + 21 = 36 zł droga2= 6. 50 + 12 +13 + 6 = 37
droga1= = 36 zł droga2= = zł droga3= =34 zł droga4= = zł Kruk, 21 zł Kos, 15 zł 14 15 9 10 11 12 13 Kot, 6 zł Lis, 13 zł Kot, 12 zł Lis, 6.50 zł Zatem zatrudniono: Kos w godz. 9-12, Lis w godz Kot w godz
Podobne prezentacje
© 2024 SlidePlayer.pl Inc.
All rights reserved.