dynamiczny przydział pamięci

21
Do tematu 3 i 4 Dynamiczny przydział pamięci, kolejki i drzewa.

Upload: ted-gracz

Post on 21-Feb-2016

224 views

Category:

Documents


0 download

DESCRIPTION

Dynamiczny przydzial TP

TRANSCRIPT

Page 1: Dynamiczny przydział pamięci

Do tematu 3 i 4Dynamiczny przydział pamięci,

kolejki i drzewa.

Page 2: Dynamiczny przydział pamięci

Zaczniemy od rozwiązania poprzedniego zadaniaZaczniemy od rozwiązania poprzedniego zadania

Page 3: Dynamiczny przydział pamięci
Page 4: Dynamiczny przydział pamięci
Page 5: Dynamiczny przydział pamięci

Zwróć uwagę, że ponieważ procedura czytaj_stos zawiera w sobie pętlę, w programie głównym możemy wywołać ją jednokrotnie do wypisania całej listy.Czy rozumiesz dlaczego ?

Jak działa ta pętla?

Page 6: Dynamiczny przydział pamięci

Znamy już pojęcie stosuZnamy już pojęcie stosu

Stos (ang. Stack) – liniowa struktura

danych, w której dane dokładane są na

wierzch stosu i z wierzchołka stosu są

pobierane (bufor typu LIFO, Last In, First

Out; ostatni na wejściu, pierwszy na

wyjściu).

Ideę stosu danych można zilustrować jako stos położonych jedna na drugiej książek – nowy egzemplarz kładzie się na wierzch stosu i z wierzchu stosu zdejmuje się kolejne egzemplarze. Elementy stosu poniżej wierzchołka stosu można wyłącznie obejrzeć, aby je ściągnąć, trzeba najpierw po kolei ściągnąć to, co jest nad nimi.

Page 7: Dynamiczny przydział pamięci

Przykład zastosowania stosu - odwrotna notacja polska (RPN)Przykład zastosowania stosu - odwrotna notacja polska (RPN)

Stos znajduje zastosowanie przy obliczaniu wyrażeń zapisanych za pomocą

odwrotnej notacji polskiej (RPN).

Algorytm wygląda następująco:

Wyzeruj stos. Dla wszystkich symboli z wyrażenia RPN wykonuj: jeśli i-ty symbol jest liczbą, to odłóż go na stos, jeśli i-ty symbol jest operatorem to: zdejmij ze stosu jeden element (ozn. a), zdejmij ze stosu kolejny element (ozn. b), odłóż na stos wartość b operator a. Zdejmij ze stosu wynik.

Jest wykorzystywany między innymi przez język Forth.

Page 8: Dynamiczny przydział pamięci

Pojęcie kolejkiPojęcie kolejki

Kolejka (ang. queue) – liniowa struktura danych, w której nowe dane dopisywane są na końcu kolejki, a z początku kolejki pobierane są dane do dalszego przetwarzania (bufor typu FIFO, First In, First Out; pierwszy na wejściu, pierwszy na wyjściu).

Page 9: Dynamiczny przydział pamięci

Pojęcie listyPojęcie listy

Lista - dynamiczna struktura danych, używana w informatyce. Składa się z podstruktur wskazujących na następniki i/lub poprzedniki.

Więcej znajdziecie w podręczniku i Internecie.

Teraz przykład praktyczny

Page 10: Dynamiczny przydział pamięci
Page 11: Dynamiczny przydział pamięci
Page 12: Dynamiczny przydział pamięci
Page 13: Dynamiczny przydział pamięci

ZadaniePrzeanalizuj powyższy kod programu. Przepisz i uruchom.Zmodyfikuj w taki sposób, aby w elementach listy było przechowywane również imię obok nazwiska i wieku.Kod wklej do sprawozdania.

Page 14: Dynamiczny przydział pamięci

Pojęcie drzewaPojęcie drzewa

Strukturę drzewa pokażemy na przykładzie drzewa binarnego. Tak jak lista jednokierunkowa jest najprostszą strukturą liniową (jednowymiarową), tak drzewo binarne jest najprostszą strukturą dwuwymiarową. W praktyce przejawia się to tym, że każdy element ma dwa rozgałęzienia - lewe i prawe.

Page 15: Dynamiczny przydział pamięci
Page 16: Dynamiczny przydział pamięci
Page 17: Dynamiczny przydział pamięci
Page 18: Dynamiczny przydział pamięci
Page 19: Dynamiczny przydział pamięci
Page 20: Dynamiczny przydział pamięci

ZadanieZadanieUruchom program, kod wklej do sprawozdania.

Page 21: Dynamiczny przydział pamięci

PodsumowaniePodsumowanie

Sprawozdanie z tematu:

4. Dynamiczny przydział pamięci, kolejki i drzewa.

Rozbuduj tak, aby zawierało:

Sprawozdanie powinno zawierać:

● Pojęcie stosu, listy, kolejki i drzewa.● Kod programu z przykładem stosu.● Zmodyfikowany kod z przykładem listy (imię, nazwisko, wiek).● Kod programu z zastosowaniem drzewa.

Uwaga!!!Redagując kody w sprawozdaniu (dokument online) – zastosuj wcięcia.