Strona 1 z 17 Typy danych 1. Dane tekstowe rozmaite słowa zapisane w różnych alfabetach: Rozwój metod badawczych pozwala na przesunięcie granicy poznawania otaczającego coraz dalej w głąb materii: 2. Dane liczbowe 2.1. Liczby całkowite ze znakiem i bez znaku: 32768, -165, +16384; 2.2. Liczby rzeczywiste stało i zmienno pozycyjne: 04 123.0456, -0.0045, 0. 3485 10, 03 0. 1230 10. 3. Dane logiczne: p = 1, g = 0 p g = 1.
Strona 2 z 17 Struktury danych Zmienne 55 ZMIENN - nadajemy im nazwę np. X, LICZNIK itp.; - zmiennym przypisujemy wartości tekstowe, liczbowe lub logiczne np. X := 0 lub X PRWD co odczytujemy jako X weź równe zero lub X podstaw zero lub "przypisz wartość logiczną PRWD zmiennej X ; - gdy chcemy wartość zmiennej X zwiększyć o jeden stosujemy zapis: X := X + 1 lub X X + 1.
Strona 3 z 17 Struktury danych Wektory lub tablice jednowymiarowe V 1 2 3 4 5 W E K T O R V V = ( V V K) 1 2 V3 - Do odwołania się do poszczególnych elementów wektora używamy indeksu np. V(2) lub M[3]. - Indeksy mogą być zmiennymi np. I := 1; V(I) := 4. - Indeksy mogą być wyrażeniami algebraicznymi: V(I+1) := 3. - Jako struktura danych wektor związany jest z pętlą iteracyjną jako strukturą sterującą. Często pętlę iteracyjną inicjujemy w formie: Dla I zmieniającego się od 0 do N wykonaj, co następuje
Strona 4 z 17 lgorytm sortowania bąbelkowego korzystający z wektora V i zmiennej sterującej X 1. Wykonaj, co następuje N-1 razy 1.1. X 1; 1.2. dopóki X<N, wykonuj, co następuje: 1.2.1. jeśli V(X+1)<V(X) to zamień je miejscami; 1.2.2 X X+1.
Strona 5 z 17 Struktury danych Tablice lub macierze 1,1 1,2 1,3 = 2,1 2,2 2,3 3,1 3,2 3,3 : 11, 1, 2 1, 3 = 2, 1 2, 2 2, 3 3, 1 3, 2 3, 3 - Odwołanie się do elementu tablicy uzyskuje się używając dwóch indeksów: wiersza i kolumny: (2,1) lub [2,2]. - Jako indeksów możemy używać zmiennych oraz wyrażeń algebraicznych.
Strona 6 z 17 - Jako struktura danych macierz związana jest z zagnieżdżoną podwójną pętlą iteracyjną jako strukturą sterującą. Jedna z pętli zmienia indeksy w wierszu, droga natomiast w kolumnie. Kolejność pętli jest dowolna. 1.0. Dla I zmieniającego się od 0 do N wykonaj 1.1. Dla J zmieniającego się od 0 do N wykonaj 1.2. [I,J]:=I+J;
Strona 7 z 17 Struktury danych Kolejka G 1 2 B 3 C 4 D 5 E 6 F 1 2 B 3 C 4 D 5 E 6 F 7 G 1 B 2 C 3 D 4 E 5 F 6 G - Jest to specyficzna forma wektora o specjalnym mechanizmie indeksowania. - Jest to struktura wykorzystywana przez procesor do kontroli kolejności wykonywanych zadań.
Strona 8 z 17 Struktury danych Stosy F 6 F 5 E 5 E 5 E 4 D 4 D 4 D 3 C 3 C 3 C 2 B 2 B 2 B 1 1 1 - Jest to specyficzna forma wektora o specjalnym mechanizmie indeksowania. - Jest to struktura wykorzystywana przez procesor do przechowywania bieżących wartości parametrów oraz adresów.
Strona 9 z 17 Struktury danych Drzewa, czyli hierarchie - drzewa genealogiczne przodków i potomków, - schemat organizacyjny przedsiębiorstwa, - podział książki na rozdziały i podrozdziały - struktura katalogów na dysku komputerowym
Strona 10 z 17 Ham Gamgee 1326-1428 Hamson 1565 Halfred 1369 Stokrotka 1372 May 1376 Sam Gamgee 1326-1428 + Róża Cotton 1384 Elanor Piękna 1421 Frodo Ogrodnik 1423 Róża 1425 Merry 1427 Pippin 1429 Złotogłówka 1431 Hamfast 1432 Stokrotka 1433 Pierwiosnaka 1435 Bilbo 1436 Ruby 1438 Tolman 1442 Drzewo genealogiczne Sama Gamgee
Strona 11 z 17 Struktura drzewiasta la Krzesło 173 54.2 Ola Ryba - korzeń la ; - węzły Krzesło, 173, 54.2 - liście Ola, Ryba.
Strona 12 z 17 Elementy struktury drzewiastej - Korzeń. - Węzły (punkty drzewa posiadające potomstwo). - Liście (węzły nie posiadające potomstwa). - Drogi lub gałęzie (sekwencje węzłów odpowiadające przejściu w dół, w kierunku od korzenia do liścia). - Jako struktura danych drzewa są tworem rekurencyjnym i związane są z procedurami rekurencyjnymi jako strukturami sterującymi.
Strona 13 z 17 Drzewa binarne - Rząd wyjściowy węzłów jest ograniczony przez dwa. - Każdy węzeł ma co najwyżej dwójkę potomstwa. - Przykładem drzewa binarnego jest genealogiczne drzewo przodków.
Strona 14 z 17 lgorytm sortowania drzewiastego 1. przekształć listę wejściową w binarne drzewo poszukiwań T; 2. obejdź drzewo T w porządku "najpierw w lewo" i wypisz każdy element przy okazji drugich jego odwiedzin.
Strona 15 z 17 Przekształcenie listy wejściowej w binarne drzewo poszukiwań Należy posortować następujący ciąg liczb: 128; 64; 106; 396; 140; 346; 801; 123; 12; 9; 902; 129, 34. 128 64 396 12 106 140 801 9 34 123 129 346 902 Mariusz B. Bogacki 2008-10-18
Strona 16 z 17 Kolejno odwiedzane węzły w wędrówce po binarnym drzewie poszukiwań zgodnie z zasadą: najpierw w lewo. Czerwonym kolorem zaznaczono węzły odwiedzane po raz drugi. 128; 64; 12; 9; 9; 9; 12; 34; 34; 34; 12; 64; 106; 106; 123; 123; 123; 106; 64; 128; 396; 140; 129; 129; 129; 140; 346; 346; 346; 140; 396; 801; 801; 902; 902; 902; 801; 396; 128.
Strona 17 z 17 Procedura obejścia binarnego drzewa poszukiwań T procedura złóż-odwiedziny-za-drugim-przejściem T: 1. jeśli T jest puste, to wróć; 2. w przeciwnym razie (tj. jeśli T jest niepuste, wykonaj co następuje: 2.1. wywołaj złóż-odwiedziny-za-drugimprzejściem lewe (T); 2.2. wypisz element danych znaleziony w korzeniu T; 2.3. wywołaj złóż-odwiedziny-za-drugimprzejściem prawe (T); 3. wróć.