Dynamiczne struktury danych 1

Slides:



Advertisements
Podobne prezentacje
ALGORYTMY I STRUKTURY DANYCH
Advertisements

Tablice 1. Deklaracja tablicy
STRUKTURY DANYCH.
C++ wykład 2 ( ) Klasy i obiekty.
Typy strukturalne Typ tablicowy.
Programowanie obiektowe
Rekurencja 1 Podprogram lub strukturę danych nazywamy rekurencyjną, (recursive subprogram, recursive data structure) jeżeli częściowo składa się z samej.
Algorytmy – c.d. złożoność algorytmów struktury danych
Algorytmy – c.d. struktury danych złożoność algorytmów
PROGRAMOWANIE STRUKTURALNE
PROGRAMOWANIE STRUKTURALNE
Badania operacyjne. Wykład 1
Elementarne struktury danych Piotr Prokopowicz
Współprogramy II W tym wykładzie pogłębimy naszą znajomość z współprogramami. Omówimy współpracę procedur rekurencyjnych i współprogramów, wprowadzimy.
Materiały do zajęć z przedmiotu: Narzędzia i języki programowania Programowanie w języku PASCAL Część 6: Tablice, rekordy, zbiory.
Podstawy informatyki Wirtotechnologia – Wskaźniki i referencje
Podstawy informatyki Powtórka Grupa: 1A Prowadzący: Grzegorz Smyk
Kurs Pascala – spis treści
Model danych oparty na listach
Wskaźniki. Definiowanie wskaźników Wskaźnik może wskazywać na obiekt dowolnego typu. int * w; char * Wsk_Znak; float * Wskaz_Real; Przykłady: Wskaźnik.
Struktury.
C++ wykład 2 ( ) Klasy i obiekty.
Zasady zaliczenia Warunki uzyskania zaliczenia:
Typy pochodne 1 Często dogodnie jest wprowadzić nowy typ, który jest podobny do istniejącego, niemniej jednak różny. Niech T będzie pewnym typem. Możemy.
Programowanie zorientowane obiektowo 1 Programowanie zorientowane obiektowo (object-oriented programming) jest to metodologia programowania bazująca na.
Ogólne jednostki programowe 1
Tablice jednowymiarowe 1
Typy danych – podstawy 1 W Adzie wszystkie dane muszą być określonego typu. Definicja Typ danych (data type) jest to zbiór wartości i operacji, które można.
Typy prywatne 1 Typy prywatne W Adzie typy prywatne (private types) służą do bezpiecznego udostępniania danych zdefiniowanych w pakiecie, z którego korzysta.
Rekordy 1 Definicja Typ strukturalny nazywamy typem rekordowym, jeżeli zawiera pewną liczbę nazwanych składowych, które mogą być różnych typów. Dostęp.
Stałe i zmienne 1 Definicja Literałem (literal) nazywamy wartość danej jawnie pisaną w programie Przykład Ada.Float_Text_Io.Put ( ); Definicja Stałą
Typy wskaźnikowe ogólne 1 Typy wskaźnikowe ogólne (general access types) umożliwiają pośredni dostęp (indirect access), czyli przez wskaźniki, do zadeklarowanych.
Wykład 1: Wskaźniki Podstawy programowania Programowanie w C
Podstawy programowania PP – WYK2 Wojciech Pieprzyca.
Wykład 2 struktura programu elementy języka typy zmienne
Języki programowania obiektowego
Typy wskaźnikowe, dynamiczne struktury danych
Podstawy programowania II
Wskaźnik może wskazywać na obiekt dowolnego typu. int * w; char * Wsk_Znak; float * Wskaz_Float; Przykład: Wskaźnik przechowuje adres obiektu wskazanego.
struct nazwa { lista składników }; Dostęp do składowych struktury Nazwa_Zmniennej_Strukturalnej. Nazwa_Składnika.
Podstawy programowania II
Sortowanie przez kopcowanie
Podstawy programowania
Pliki Pojęcie i rodzaje plików Definicja typu plikowego Operacje wykonywane na plikach elementowych.
Inicjalizacja i sprzątanie
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.
Zbiory i rekordy mgr inż. Agata Pacek. Deklaracja typu zbiorowego (określa ilość elementów w zbiorze) type biegi=set of 0..6; Definiowanie zmiennej typu.
Wykład 10 typ zbiorowy rekurencja.
IV EKSPLORACJA DANYCH Zadania eksploracji danych: klasyfikacja
Modele pamięci Tiny - mikroskopijny do 64 K zmienne inicjalizowane kod programu zmienne nie inicjalizowane HEAP (sterta) obszar wolny STACK (stos) Model.
Powtórzenie wyk ł adu 10 Fizyczna organizacja danych w bazie danych. Indeksy.
Algorytmy i Struktury Danych Struktury Danych
Algorytmy i Struktury Danych Drzewa BTS, AVL
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.
Projektowanie i programowanie systemów informatycznych W. Bartkiewicz Wykład 6. Indeksowanie plików – Indeksy drzewiaste ISAM i drzewa B+
Programowanie Zaawansowane
Zbiory dynamiczne.
ALGORYTMY I STRUKTURY DANYCH
K URS JĘZYKA C++ – WYKŁAD 3 ( ) Przenoszenie Składowe statyczne Funkcje wbudowane Argumenty domyślne.
Indeksy drzewiaste. ISAM ISAM - INDEXED SEQUENTIAL ACCESS METHOD Problem: –Dany jest plik uporządkowany – w jaki sposób zrealizować efektywnie zapytanie.
C++ mgr inż. Tomasz Turba Politechnika Opolska 2016.
Typy wyliczeniowe, kolekcje
Listy.
Zbiory rozłączne.
Programowanie Obiektowe – Wykład 2
Współprogramy II W tym wykładzie pogłębimy naszą znajomość z współprogramami. Omówimy współpracę procedur rekurencyjnych i współprogramów, wprowadzimy.
Wskaźniki Elżbieta Labocha.
ALGORYTMY I STRUKTURY DANYCH
Zapis prezentacji:

Dynamiczne struktury danych 1 Dotychczas poznane struktury danych, takie jak tablice i rekordy są nazywane statycznymi strukturami danych. Struktury takie mają stałe wymiary i strukturę przez cały czas swojego istnienia. W wielu zastosowaniach dogodnie jest stosować struktury, które zmieniają skład, wymiary i strukturę podczas wykonywania programu. Typowymi przykładami są listy i drzewa, które rosną i kurczą się dynamicznie tzn. podczas wykonywania programu.

Dynamiczne struktury danych 2 Definicja. Dynamiczna struktura danych jest zespołem elementów, najczęściej nazywanych węzłami (nodes), które w ogólnym przypadku reprezentowane są przez rekordy. Do konstrukcji dynamicznych struktur danych stosuje się wskaźniki (pointers). Mówimy więc, że wskaźniki są typu wskaźnikowego. Typy wskaźnikowe nie są strukturalne, a więc należą do typów skalarnych.

Dynamiczne struktury danych 3 W Adzie mamy dwa rodzaje typów wskaźnikowych: typy wskaźnikowe ograniczone typy wskaźnikowe ogólne Typy wskaźnikowe są w Adzie nazywane po angielsku access types, co oddaje istotę wskaźnika, czyli zmiennej dającej dostęp (access) do wskazywanych danych. Zmienne typów wskaźnikowych ograniczonych mogą wskazywać tylko na obiekty utworzone dynamicznie. Zmienne typów wskaźnikowych ogólnych wskazują na zadeklarowane obiekty, podprogramy, albo do danych utworzonych przez alokatory.

Dynamiczne struktury danych 4 Typy wskaźnikowe ograniczone Zmienne do których odwołujemy się przez wskaźniki są anonimowe i nazywane są zmiennymi dynamicznymi. Zmienna dynamiczna jest tworzona przez użycie alokatora przydzielającego pamięć dla tej zmiennej: Zmienna_Wskaznikowa := new Typ_Wskazywany; Wskaźniki ograniczone nie mogą wskazywać na dowolne zmienne. Typ zmiennej wskazywanej musi być podany w deklaracji typu wskaźnikowego. Typ wskaźnikowy ograniczony jest związany ze wskazywanym typem, nazywanym czasami typem bazowym.

Dynamiczne struktury danych 5 type Wezel; type Wskaznik is access Wezel; type Wezel is record Klucz : Typ_Klucz; Nastepny : Wskaznik; Dane : Informacje: end record; Wskaznik jest typem wskaźnikowym związanym z typem Wezel. Każdy typ wskaźnikowy zawiera wartość null, która nic nie wskazuje.

Dynamiczne struktury danych 6 Wsk_Listy : Wskaznik; Jest to definicja zmiennej wskaźnikowej związanej z typem Wezel. Zmienna ta ma domyślną wartość null, co oznacza, że nie wskazuje na żaden obszar pamięci. Dopiero wywołanie alokatora Wsk_Listy := new Wezel; powoduje, że zmienna ta wskazuje na obszar pamięci odpowiadający danej typu Wezel. Jeżeli chcemy nadać wartości przechowywane w tym obszarze, to możemy napisać instrukcje: Wsk_Listy.Klucz := Wartosc_Klucz; Wsk_Listy.Dane := Wartosc_Dane;

Dynamiczne struktury danych 7 Wartości można też nadać w instrukcji wywołującej alokator. Wsk_Listy := new Wezel'(Wartosc_Klucz, null, Wartosc_Dane); Jest to agregat kwalifikowany i nadawane są wartości wszystkim składowym rekordu, nawet wtedy, gdy niektóre mają wartości domyślne. Można również nadać wartość przy deklaracji zmiennej wskaźnikowej Wsk_Listy : Wskaznik := new Wezel' (Wartosc_Klucz, null, Wartosc_Dane);

Dynamiczne struktury danych 8 Lista liniowa

Dynamiczne struktury danych 9 Przykład Lista_Liniowa Wstawianie nowego węzła po wybranym węźle

Dynamiczne struktury danych 10

Dynamiczne struktury danych 11

Dynamiczne struktury danych 12

Dynamiczne struktury danych 13 Definicja. Struktura drzewiasta, albo drzewo o typie podstawowym T jest Strukturą pustą, albo Węzłem typu T ze skończoną ilością dowiązanych, rozłącznych struktur drzewiastych o tym samym typie podstawowym, które nazywamy poddrzewami. A jest przodkiem (bezpośrednim) B, natomiast B jest potomkiem (bezpośrednim) A. Definicja. Drzewem uporządkowanym jest drzewo, w którym gałęzie są uporządkowane.

Dynamiczne struktury danych 14 Definicja. Korzeń jest węzłem, który nie ma przodków. Definicja. Liściem nazywamy węzeł, który nie ma potomków. Definicja. Węzły, które nie są korzeniami ani liśćmi nazywamy węzłami pośrednimi. Definicja. Uporządkowanym drzewem binarnym nazywamy drzewo uporządkowane składające się ze skończonej liczby węzłów, przy czym może być puste, albo posiada korzeń z dwoma rozłącznymi poddrzewami binarnymi, nazywanymi lewym i prawym poddrzewem. Definicja. Drzewem dokładnie wyważonym nazywamy drzewo, w którym na każdym poziomie utworzono maksymalną możliwą liczbę węzłów.

Dynamiczne struktury danych 15

Dynamiczne struktury danych 16 Przykład Drzewo_Binarne Przykład Wskazniki_Integer Przykład Wsk_Ograniczone