Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

dr Anna Kwiatkowska Instytut Informatyki

Podobne prezentacje


Prezentacja na temat: "dr Anna Kwiatkowska Instytut Informatyki"— Zapis prezentacji:

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 m0 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 xy 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


Pobierz ppt "dr Anna Kwiatkowska Instytut Informatyki"

Podobne prezentacje


Reklamy Google