Prezentace se nahrává, počkejte prosím

Prezentace se nahrává, počkejte prosím

PROGRAMOVÁNÍ 3ITA,3ITB Jaroslav Burdys Hlavní zdroj:

Podobné prezentace


Prezentace na téma: "PROGRAMOVÁNÍ 3ITA,3ITB Jaroslav Burdys Hlavní zdroj:"— Transkript prezentace:

1 PROGRAMOVÁNÍ 3ITA,3ITB Jaroslav Burdys Hlavní zdroj: www.itnetwork.cz

2

3 Datové struktury  Data používaná programy jsou v paměti uchovávána v tzv. datových strukturách.  Data lze reprezentovat různými datovými typy.  Pro efektivní práci s daty je nutné zvolit vhodnou datovou strukturu a odpovídající datový typ. Dělení datových struktur: Datové struktury děleny do dvou kategorií:  Základní datové struktury: Vyskytují se téměř ve všech programovacích jazycích. Za běhu programu nemění svůj rozsah.  Odvozené datové struktury: Nazývány jako abstraktní datové struktury. Často implementovány jako objekty. Za běhu programu mohou měnit svůj rozsah (tzv. dynamické datové struktury.)

4 Dělení do dvou skupin:  Základní datové struktury:  Proměnná (Variable).  Pole (Array).  Struktura (Structure).  Unie (Union)  Výčet (Enumeration)  Objekt (Object).  Odvozené datové struktury:  Seznam (List).  Strom (Tree).  Zásobník (Stack).  Fronta (Query).  Tabulka (Table).

5

6

7

8

9 Point *pP = (Point*) malloc(sizeof(Point)); (Java, C#, C++11)

10

11

12 (Prvky stejného datového typu => pole je HOMOGENNÍ datová struktura) V některých program. jazycích (Ruby) je MUTABILNÍ, u většiny má však naopak neměnný počet prvků, definovaný již při jeho deklaraci/definici.

13

14

15

16

17 - Atributy (tzv. členskými daty) (tzv. členskými funkcemi)

18

19 Jednosměrný s. Obousměrný s. Kruhový seznam

20

21

22

23 Fronta Kruhová fronta

24

25

26 Binární strom Ternární strom

27

28  Neexistuje žádná „dokonalá“ datová struktura, která by byla ideální pro všechna použití. Různé datové struktury mají různé vlastnosti co se týká jejich očekávané časové a paměťové složitosti, náročnosti implementace v daném programovacím jazyce či konkrétním projektu a dalších vlastností. Pro konkrétní podmínky se tak často implementují specifické varianty.  Nejvíce náročné datové struktury jsou ty, které využívají rekurzivitu a vícerozměrná pole.

29

30 Abstraktní datový typ je implementačně nezávislá specifikace struktury dat s operacemi povolenými na této struktuře. Často struktury, jejichž rozsah (počet položek) se může během vykonávání programu měnit => ekvivalentní pojmy:  Abstraktní datové struktury  Dynamické datové struktury Používáme je tehdy, když nám základní typy přestávají stačit. Obvykle jsou implementovány v knihovnách nebo přímo v jazyce. Příklady implementace:  Balík tříd java.util  STL (Standard Template Library) - šablony v C++

31 Všechny ADT lze označit za kontejner Každý kontejner (v libovolném program.jazyce) by měl mít definovány tyto operace:  Vytvoření prázdného kontejneru (konstruktor, init)  Zjištění počtu uložených objektů (size)  Přístup k prvkům kontejneru (read, top, front,…)  Vložení objektu do kontejneru (insert,push)  Odstranění objektu z kontejneru (delete, pop, …)  Vymazání všech uložených objektů (clear)

32  Dle počtu a vzájemného uspořádání složek  statické= nemění se  dynamické= mění se  Dle typu objektů uvnitř  homogenní= všechny stejného typu  nehomogenní (heterogenní) = různého typu  Zda existuje bezprostřední následník  lineární= existuje [např. pole, seznam,…]  nelineární= neexistuje [např. strom, tabulka,…]

33

34

35 I.

36 II.

37 III.

38

39

40  P.Wróblewski, Algoritmy, Datové struktury a programovací techniky, Computer Press, Brno 2004  P.Töpfer, Algoritmy a programovací techniky, Prometheus, Havlíčkův Brod 1995  S.Kračmar, Programovací jazyk C, Vydavatelství ČVUT, Praha 2002  J.Keogh, Datové struktury bez předchozích znalostí, Computer Press, Brno 2006


Stáhnout ppt "PROGRAMOVÁNÍ 3ITA,3ITB Jaroslav Burdys Hlavní zdroj:"

Podobné prezentace


Reklamy Google