I Struktury algorytmów 1 Nieformalne środki opisu algorytmów 1.1 Kompozycje imperatywne języka potocznego 1.1.1 Proste zdania rozkazujące 1.1.2 Złożone zdania rozkazujące 1.1.2.1 Instrukcje strukturalne i ich składowe 1.1.2.2 Dyskretność procesu wykonywania instrukcji 1.1.2.3 Kompozycja sekwencyjna 1.1.2.1 "Kompozycja synchroniczna 1.1.2.5 Kompozycje warunkowe (dwuwariantowe) 1.1.2.6 Kompozycja wyboru wielowariantowego 1.1.2.7 Kompozycja iteracyjna "dopóki" 1.1.2.8 Kompozycja iteracyjna ,.aż do" I . 1.2.9 Zagnieżdżanie kompozycji algorytmicznych 1.1.2.10 Komentarze L.1.3 ‘Konstrukcje linearne ze skokami Ćwiczenia 1.2 Schematy Nassi-Shneidermana dla graficznego przedstawiania kompozycji algorytmicznych 1.2.1 Podstawy symboliki schematów N-S 1.2.2 Przykład 1.2.3 Ogólne zasady projektowania algorytmów w postaci schematów N-S 1.3 ‘Schematy blokowe (sieci działań) 1.3.1 Symbolika schematów blokowych 1.3.2 Przekład schematów N-S na schematy blokowe 1.3.3 Przykład prostego schematu blokowego 1.3.4 Konstrukcje ..ntestrukturalne" 1.4 Przykład procesu algorytmizacji - problem sortowania dwudzielnego Ćwiczenia 2 Dane i typy wartości 2.1 Pojęcie danej 2.2 Rodzaje danych 2M Oznaczenia danych 2.4 Typy wartości i rodzaje ich zgodności 2.4.1 Zgodność typów wartości w instrukcjach przypisania 2.4.2 Zgodność typów wartości operandów w wyrażeniach 2.4.3 Określanie typu wartości danych 2.5. Formalna definicja typu wartości 2.5.1 Zbiór wartości 2.5.2 Zbiór operacji w typie wartości 2.5.3 Zbiór relacji weryfikowalnycli W typie wartości 2.6 Typy wartości w nieformalnych opisach algorytmów 2.6.1 Kilka uwag o typach całkowitoliczbowych 2.6.1.1 Liczby kardynalne i typ Kardynalne 2.6.1.2 Typ Naturalne 2.6.1.3 Liczby całkowite i typ Całkowite 2.6.2 Typy calkowitoliczbowe a typ Rzeczywiste 2.6.3 Typ Logiczne 2.6.3.1 Charakterystyka typu Logiczne 2.6.3.2 Zasady pierwszeństwa działań 2.6.3.3 Skrócony tryb obliczania wartości alternatyw i koniunkcji 2.6.3.4 Operowanie zmiennymi i wyrażeniami logicznymi 2.6.3.5 "Informacja logiczna w popularnych językach programowania 2.7 Arytmetyczne typy wartości w popularnych językach programowania 2.7.1 Typy calkowitoliczbowe 2.7.1.1 ‘Galeria typów całkowitoliczbowych 2.7.1.2 "Racjonalne podejście do wielości typów całkowitoliczbowych 2.7.2 Typy rzeczywiste 2.7.2.1 Typy rzeczywiste zmienn opozycyjne 2.7.2.2 * Galeria typów rzeczywistych zmiennopozycyjnych 2.7.2.3 "Typy rzeczywiste stalopozycyjne Ćwiczenia 3 Przykłady nieformalnych opisów algorytmów 3.1 Od sekwencji do iteracji - anagram liczby dziesiętnej 3.1.1 Postawienie zadania 3.1.2 Rozwiązanie sekwencyjne 3.1.3 Rozwiązanie iteracyjne. 3.1.4 Zadanie z nieustaloną liczbą cyfr dziesiętnych 3.2 Obliczenia kalendarzowe i datowanie juliańskie 3.3 Przeliczanie współrzędnych kartezjańskich na biegunowe Ćwiczenia 4 Procedury i funkcje 4.1 Procedura i instrukcja proceduralna 4.1.1 Intuicyjne pojęcie procedury 4.1.1.1 Idea modularyzacji 4.1.1.2 Paranietryzacjaopisu algorytmu 4.2 Składniki opisu procedury 4.2.1 Nagłówek procedury 4.2.1.1 Identyfikator procedury 4.2.1.2 Wykaz parametrów formalnych 4.2.2 Treść procedury 4.2.2.1 Treść procedury w notacji IPL 4.2.2.2 Klatka N-S dla treści procedury 4.2.2.3 Wykaz zmiennych "roboczych" procedury 4.2.3 Przykłady procedur 4.2.3.1 Wymiana wartości między zmiennymi 4.2.3.2 Pierwiastki trójmianu kwadratowego 4.2.4 Instrukcja proceduralna 4.2.4.1 Treść instrukcji proceduralnej 4.2.4.2 Instrukcja proceduralna w notacji IPL 4.2.4.3 Klatka N-S instrukcji proceduralnej 4.2.4.4 Przebieg wykonania instrukcji proceduralnej 4.3 Dalsze przykłady nieformalnych opisów algorytmów 4.3.1 Prymitywny algorytm sortowania 4.3.2 Przykład z pętlą ..dopóki"‘ - algorytm Euklidesa 4.4 Procedura funkcyjna (funkcja) i jej nazewnik 4.4.1 Nazewnik funkcji w wyrażeniu 4.4.2 Opis funkcji w IPL i N-S 4.4.2.1 Nagłówek opisu funkcji 4.4.2.2 Treść funkcji 4.4.2.3 Instrukcja określająca wartość wynikową nazewnika 4.4.3 Proces obliczania wartości nazewnika funkcji 4.4.4 Użycie nazewnika funkcji w wyrażeniach 4.4.5 Przykłady opisów funkcji 4.4.5.1 Algorytm Euklidesa 4.4.5.2 Prosta funkcja rzeczywista- wartość wielomianu 3. stopnia 4.4.5.3 Obliczanie wartości funkcji częściowej 4.4.5.4 Lokalizacja miejsca zerowego funkcji metodą bt sekcji Ćwiczenia Wejście i wyjście programu 5.1 Procedury wejścia i wyjścia 5.1.1 Pojęcie operacji wejścia i wyjścia. Symbolika N-S klatek tych operacji 5.1.2 Procedury wyjścia 5.1.3 Procedury wejścia 5.2 * Technologia projektowania wydawnictwa wyników programu 5.3 Organizacja procesu przyjmowania informacji z klawiatury - programowanie operacji wejściowych Ćwiczenia Informacja referencyjna i dane wskazywane 6.1 Wskazanie, wskaźnik, dana wskazywana 6.1.1 Informacja bezpośrednia a informacja referencyjna 6.1.1.1 Informacja bezpośrednia 6.1.1.2 Informacja referencyjna i jej rodzaje 6.1.1.3 Referencja adresowa. Adres danej a dostęp do danej 6.1.1.4 Referencja indeksowa 6.1.2 Typy wskazaniowe, wskaźniki i dane wskazywane 6.1.2.1 Typ wskazaniowy i jego identyfikacja 6.1.2.2 Zmienna wskazaniowa (wskaźnik) 6.1.2.3 Dana wskazywana. Zasady ilustracji graficznej 6.2 Przekazywanie argumentów procedur i funkcji "przez wskazanie" 6.2.1 Przekazywanie "przez wartość" wskazań na zmienne 6.2.2 Kodowanie przekazywania argumentu wynikowego "przez wskazanie" 6.2.3 ‘Kulisy trybu przekazywania parametrów przez zmienną do procedur i funkcji 6.2.4 *Pr7ekazywanie wskazań na zmienne ..przez zmienną‘‘ 6.3 Dynamiczna alokacja danych wskazywanych Ćwiczenia Zadanie algorytmizaryjne i jego specyfikacja 7.1 Rodzaje zadań algorytmizacyjnych 7.2 Oczekiwana treść specyfikacji zadania 7.2.1 Specyfikacja instrukcji 7.2.2 Specyfikacja warunku 7.2.3 Specyfikacja procedury lub funkcji 7.2.3.1 Specyfikacja procedury niefunkcyjnej 7.2.3.2 Specyfikacja funkcji 7.2.4 Przykłady specyfikacji instrukcji 7.2.4.1 Przykłady wadliwych specyfikacji instrukcji 7.2.4.2 Przykłady kompletnych i poprawnych specyfikacji 7.2."i Przykłady specyfikacji warunku 7.2.5.1 Specyfikacje wadliwe 7.2.5.2 Specyfikacje poprawne 7.2.6 Przykłady specyfikacji modułów (podprogramów) 7.2.6.1 Przykład specyfikacji procedury 7.2.6.2 Przykład specyfikacji funkcji 7.2.7 Wyrażanie specyfikacji w postaci komentarzy w tekście opisu algorytmu 7.2.7.1 Treść komentarzy specyfikujących 7.2.7.2 Forma komentarzy specyfikujących instrukcje 7.2.7.3 Postać komentarzy spccyfikująryrli warunki 7.2.7A Postać komentarzy nagłówkowych procedur i funkcji Ćwiczenia 8 Organizacja algorytmów iteracyjnych 2 8.1 Zmienne wspomagające organizację pętli 8.1.1 Szczególne zmienne o wartościach całkowitych 8.1.1.1 Liczniki 8.1.1.2 Przerzutniki dwustanowe 8.1.1.3 Przerzutniki modularne 8.1.2 Sterujące zmienne logiczne 8.2 Rodzaje kompozycji iteracyjnych z pętlą typu "dopóki" 8.2.1 Klasyfikacja ze względu na refren 8.2.2 Klasyfikacja ze względu na warunek 8.2.3 Klasyfikacja ze względu na liczbę wykonań refrenu 8.3 Sterowanie liczbą wykonań i wyjściem z pętli 8.3.1 Pętle z licznikami wykonań 8.3.2 Pętle sterowane przez użytkownika 8.3.3 Pętle logiczne 8.3.4 Konstrukcje "mieszane" 8.4 Sterowanie przebiegiem wykonania refrenu 8.4.1 Wykorzystanie przerzutników dwustanowych 8.4.1.1 Przerzutnik arytmetyczny 8.4.1.2 Przerzutnik logiczny 8.4.2 Wykorzystanie przerzutników modularnych 8.4.2.1 Przerzutnik dwustanowy niesymetryczny 8.4.2.2 Przerzutnik W iel os tan owy cykliczny Ćwiczenia 9 Algorytmy sekwencyjnego przetwarzania ciągów 9.1 Rodzaje zadań przetwarzania ciągów 9.2 Skanowanie ciągu 9.3 Przetwarzanie równoczesne kilku kolejnych wyrazów ciągu 9.4 Odszukiwanie i wyszukiwanie w ciągu 9.4.1 Rodzaje zadań przeszukiwania ciągu 9.4.2 Pojęcie klucza 9.4.3 Algorytm sekwencyjnego odszukiwania wyrazu o zadanej wartości klucza 9.4.4 Odszukiwanie według klucza logicznego 9.4.5 Weryfikacja hipotezy o wyrazach ciągu 9.4.6 Algorytm sekwencyjnego wyszukiwania w ciągu wyrazów o zadanej wartości klucza 9.5 Przetwarzanie ciągów posortowanych 9.5.1 Pojęcie posortowania 9.5.2 Odszukiwanie sekwencyjne w ciągu posortowanym według klucza szukania 9.5.3 Wyszukiwanie sekwencyjne w ciągu posortowanym według klucza szukania Ćwiczenia 10 Iteracja a wzory rekurencyjne 10.1 Definicje rekursywne i rekurencyjne 10.1.1 Pojęcie rekursji 10.1.2 Ciągi definiowane rekurencyjnie 10.1.2.1 Jednokrokowe definicje rekurencyjne ciągów 10.1.2.2 Przykłady formalnych jednokrokowych definicji rekurencyjnych ciągów 10.1.2.3 Wielokrokowc definicje rekurencyjne ciągów 10.1.2.4 Praktyczne znaczenie definicji rekurencyjnych 10.1.2.5 Konstruowanie wzorów rekurencyjnych 10.2 Iteracyjne algorytmy obliczeń według definicji rekurencyjnych 10.2.1 Ogólny schemat, algorytmu obliczeń rekurencyjnych 10.2.2 Przykłady 10.2.2.1 Silnia 10.2.2.2 Potęga całkowita liczby rzeczywistej 10.2.2.3 Algorytm pierwiastkowania (wzór Herona-Newtona-Raphsona) 10.2.2.4 Cecha logarytmu przy podstawie p 10.2.2.5 Suma kolejnych wyrazów nierekurcncyjnego ciągu liczbowego 10.2.2.6 Suma ciągu naprzemiennego 10.2.2.7 Algorytm Gilla-Mollera 10.2.2.8 Maksymalny wyraz i jego indeks w ciągu zdefiniowanym nierekurencyjnie 10.2.3 Algorytmy obliczeń według wzorów wielokrokowych 10.2.3.1 Ciąg Fibonacciego 10.2.3.2 Ogólna reguła algoiytmizacji rekurencji wielokrokowej 10.2.4 Programowanie superpozycji wzorów rekurencyjnych 10.2.4.1 Superpozycje definicji rekurencyjnych 10.2.4.2 "Powściągliwe" algorytmy dla superponowanych wzorów rekurencyj-nych Ćwiczenia 11 Poprawność i odporność algorytmów 11.1 Poprawność lokalna i odporność instrukcji 11.1.1 Asercja o instrukcji. Prekondycja i post kondycja 11.1.2 Poprawność lokalna i globalna instrukcji 11.1.2.1 Własność algorytmiczna instrukcji. Poprawność lokalna 11.1.2.2 Poprawność globalna instrukcji 11.1.2.3 Poprawność lokalna a specyfikacja zadania napisania instrukcji 11.1.2.4 Odporność instrukcji 11.1.2.5 Najsłabsza wystarczająca prekondycja 11.1.3 Poprawność instrukcji prostych 11.1.3. i Poprawność instrukcji pustej. Własność algorytmiczna predykatu 11.1.3.2 Poprawność instrukcji przypisania 11.1.3.3 Poprawność instrukcji proceduralnej 11.2 Poprawność instrukcji strukturalnych 11.2.1 Wystarczające własności algorytmiczne komponentów instrukcji 11.2.2 Poprawność sekwencji instrukcji 11.2.3 Poprawność kompozycji warunkowych 11.2.3.1 Poprawność selekcji dwuwariantowej 11.2.3.2 Poprawność selekcji z wariantem pustym 11.2.3.3 Poprawność selekcji w ie I owa ri autowej 11.2.4 Poprawność algorytmów iteracyjnych I 1.2.5 Indukcja matematyczna 11.2.6 Niezmienniki instrukcji 11.2.7 Niezmiennik pętli 11.2.8 Poprawność pętli "dopóki" LI.2.9 Poprawność pętli "aż do" 11.3 Dowodzenie poprawności algorytmów 11.3.1 Testowanie algorytmu a dowód jego poprawności 11.3.1.1 Pojęcie testowania algorytmu 11.3.1.2 Testowanie jako kryterium poprawności 11.3.1.3 Ogólne zasady dowodzenia poprawności algorytmów złożonych 11.3.2 Przykłady dowodów poprawności II.-5.2.1 Przykład dowodu poprawności sekwencji 11.3.2.2 Dowodzenie poprawności selekcji zagnieżdżonej w sekwencji 11.3.2.3 *Przyklad dowodu poprawności algorytmu z pętlą o refrenie strukturalnym 11.3.2.4 Poprawność algorytmu obliczania wyrazów ciągu zdefiniowanego re-kurencyjnie Ćwiczenia 12 Strukturalne techniki bezpiecznej algorytmizacji 12.1 Idea algorytmizacji bezpiecznej 12.1.1 Idea programowania strukturalnego 12.2 Zapewnianie poprawności algorytmu w projektowaniu zstępującym 12.2.1 Postępowanie top-down w procesie konstruowania algorytmu 12.2.1.1 Cykl dekompozycyjny 12.2.1.2 Wybór właściwej konstrukcji algorytmicznej 12.2.1.3 Budowanie szkieletu wybranej kompozycji 12.2.1.4 Specyfikowanic komponentów konstrukcji 12.2.1.5 Weryfikacja dokonanej dekompozycji 12.2.1.6 Wybór kolejnego zadania do algorytmizacji 12.3 Czytelność algorytmu jako element algorytmizacji bezpiecznej 12.3.1 Czytelność opisu algorytmu 12.3.1.1 Czytelność intencji autora algorytmu 12.3.1.2 Czytelność struktury tekstu opisu algorytmu 12.4 Technika odraczanego uszczegółowiania 12.4.1 Odroczenie uszczegółowiania instrukcji 12.4.2 Odroczenie kodowania skomplikowanego warunku 12.4.3 Odroczenie uszczegółowiania instrukcji, obliczającej pojedynczą wartość 12.5 Bezpieczne projektowanie instrukcji strukturalnych 12.5.1 Bezpieczne projektowanie selekcji 12.5.1.1 Specyfikowanie komponentów selekcji dwuwariantowej 12.5.1.2 Specyfikowanie komponentów selekcji z wariantem pustym 12.5.2 Bezpieczne projektowanie sekwencji 12.5.3 Bezpieczne projektowanie instrukcji iteracyjnych 12.5.3.1 Specyfikowanie komponentów pętli "dopóki" 12.5.3.2 Niezmiennik jako podstawa algorytmu refrenu pętli 12.5.3.3 Specyfikowanie komponentów pętli "powtarzaj" Ćwiczenia 13 Procedury i funkcje rekursywne 13.1 Rekurencja a rekursja 13.2 Konstrukcja modułu rekursywnego 13.3 Rekursywne algorytmy dla wzorów rekurencyjnych "jednopunktowych" 13.3.1 Wzorzec procedury rekursywnej dla jednokroknwe-go związku rekureiicyjnego 13.3.2 Wzorzec funkcji rekursywnej dla jednokrokowego związku rekureiicyjnego 13.3.3 Przebieg wykonania instrukcji proceduralnej wywołującej procedurę rekursywną 13.4 Rekursywne algorytmy dla wzorów rekurencyjnych "wielopunktowych" 13.4.1 Algorytmy rozrzutne 13.4.2 Algorytmy powściągliwe z przestawieniem cyklicznym 13.5 Inne przykłady 13.5.1 Algorytm Euklidesa w wersji rekursywnej 13.5.2 Szybkie obliczanie potęgi o wykładniku kardynalnym 13.5.3 Rekursywną lokalizacja miejsca zerowego funkcji metodą bisekcji 13.6 *Rekursja ..ogonowa" (psendorekursja) Ćwiczenia II Struktury danych 14 Struktury danych i ich reprezentacje 14.1 Pojęcie struktury danych 14.2 Rodzaje struktur danych 14.3 Przetwarzanie danych strukturalnych i struktur danych 14.3.1 Rodzaje procesów przetwarzania struktur danych 14.3.2 Złożoność czasowa algorytmów przetwarzania struktur danych 14.3.3 Algorytmizacja przetwarzania struktur jednorodnych 14.3.3.1 Klasyfikacja algorytmów przetwarzania struktur jednorodnych 14.3.3.2 Metoda ,,dziel i zwyciężaj" 14.4 Reprezentacje struktur danych 14.4.1 Struktura danych a jej reprezentacja 14.4.2 Dane strukturalne i strukturalne typy wartości 14.4.3 Dane referencyjne reprezentujące struktury danych 14.5 Struktury danych jako nośniki reprezentacji obiektów i systemów rzeczywistych 15 Niejednorodne struktury danych 15.1 Modele opisu elementów świata rzeczywistego 15.1.1 Rodzaje prostej informacji opisującej 15.1.2 Wieloatrybutowe modele deskrypcyjne 15.2 Rekordy logiczne i zmienne rekordowe 15.2.1 Budowa rekordu 15.2.2 Operowanie zmiennymi rekordowymi 15.3 Przykłady zastosowania typów rekordowych 15.3.1 Arytmetyka liczb wymiernych 15.3.1.1 Językowa reprezentacja liczby wymiernej 15.3.1.2 Implementacja działań na liczbach wymiernych 15.3.2 Arytmetyka liczb zespolonych 15.3.2.1 Specyfika algorytmizacji rachunku zespolonego 15.3.2.2 Rekordowe reprezentacje wartości zespolonych 15.3.2.3 Implementacja arytmetyki zespolonej Ćwiczenia 16 Jednorodne struktury danych z indeksowaniem 16.1 Tablice i typy tablicowe 16.1.1 Pojęcie struktury tablicowej, indeksu i tablicy 16.1.2 Definiowanie struktury tablicy i typu tablicowego 16.1.2.1 Definiowanie konfiguracji struktury tablicowej 16.1.2.2 Formalna definicja typu tablicowego 16.1.3 Operowanie zmiennymi tablicowymi 16.2 Podstawowe algorytmy tablicowe 16.2.1 Założenia wstępne 16.2.2 Ogólna idea iteracyjnych algorytmów przetwarzania tablic jednowymiarowych 16.2.3 Skanowanie sekwencyjne 16.2.4 Zadania odszukiwania i wyszukiwania w tablicach nieposortowanych 16.2.3 Tablica posortowana 16.2.5.1 Odszukiwanie sekwencyjne w tablicy posortowanej 16.2.5.2 Odszukiwanie bisekcyjne 16.2.5.3 Wyszukiwanie w tablicy posortowanej 16.2.5.4 Sortowanie "bąbelkowe" odcinka tablicy 16.2.6 Rekursywne algorytmy tablicowe 16.2.6.1 Rekursywny wariant metody bisekcji 16.2.6.2 Algorytmy konstruowane metodą "dziel i zwyciężaj" 16.3 Proste zastosowania tablic 16.3.1 Tablicowa implementacja algebry zespolonej 16.3.2 Wielomiany i równania algebraiczne 16.3.3 Wektory i macierze 16.4 "Pliki jednorodne 16.4.1 Kojarzenie pliku fizycznego ze zmienną reprezentującą plik jednorodny 16.4.2 Tryby przetwarzania pliku jednorodnego 16.4.3 Przetwarzanie sekwencyjne pliku jednorodnego 16.4.3.1 Dopisywanie sekwencyjne składowych do pliku jednorodnego 16.4.3.2 Odczytywanie sekwencyjne składowych pliku jednorodnego 16.4.3.3 Nadpisywanie sekwencyjne pliku jednorodnego 16.4.4 Przetwarzanie pliku jednorodnego w trybie dostępu bezpośredniego 16.4.4.1 Odszukiwanie bisekcyjne 16.4.4.2 Pobieranie i nadpisywanie składowej o zadanym indeksie 16.4.4.3 Sortowanie plików jednorodnych Ćwiczenia 17 Rekordowo-tablicowe implementacje struktur matematycznych 17.1 Reprezentacje ciągów i zbiorów skończonych 17.1.1 Ciągi skończone ograniczonej długości 17.1.2 Wektory i punkty przestrzeni kartezjańskich 17.1.3 Reprezentacja skończonego podzbioru dowolnego typu wartości 17.1.3.1 Tabelki funkcji charakterystycznej podzbioru 17.1.3.2 Wykaz elementów podzbioru 17.1.3.3 Implementacja rachunku zbiorów 17.1.3.4 Małe bazy danych 17.1.3.5 Podzbiór zbioru indeksów tablicy przeszukiwanej 17.2 Implementacje rachunku wektorowego i macierzowego 17.2.1 Działania na wektorach 17.2.2 Reprezentacje macierzy 17.2.2.1 Reprezentacja z tablicą dwuwymiarową 17.2.2.2 Reprezentacje z tablicą jednowymiarową 17.2.3 Podstawowe działania na macierzach i wektorach 17.3 Implementacja algebry wielomianów 17.3.1 Znaczenie praktyczne implementacji algebry wielomianów 17.3.2 Reprezentacje wielomianów jednej zmiennej 17.3.2.1 Formalne reprezentacje wielomianu jednej zmiennej 17.3.2.2 Językowa reprezentacja wielomianu jednej zmiennej o współczynnikach rzeczywistych 17.3.3 Algorytmy operacji na wielomianach 17.3.3.1 Schemat Homera - obliczanie wartości wielomianu, dzielenie wielomianu przez dwumian 17.3.3.2 Różniczkowanie formalne wielomianu 17.3.3.3 Algorytm standaryzacji (redukcji stopnia) wielomianu 17.3.3.4 Suma algebraiczna dwóch wielomianów 17.4 Tabele funkcyjne 17.4.1 Sposoby reprezentowania funkcji w algorytmach 17.4.2 Pojęcie tabeli funkcyjnej i jej struktura 17.4.3 Algorytmy przetwarzania tabel funkcyjnych Ćwiczenia 18 Struktury jednorodne wiązane referencjami 18.1 Listy liniowe wiązane wskazaniami 18.1.1 Listy liniowe jednokierunkowe 18.1.1.1 ,.Pączkowanie" danych wskazywanych 18.1.1.2 Pojęcie listy liniowej 18.1.1.3 Lista liniowa jednokierunkowa z dostępem czołowym 18.1.1.4 Lista liniowa jednokierunkowa z dostępem do obu końców 18.1.1.5 Skanowanie listy liniowej jednokierunkowej 18.1.1.6 Listy liniowe dwukierunkowe 18.1.1.7 Posortowanie list liniowych wiązanych wskazaniami 18.2 Listy cykliczne i struktury drzewiaste 18.2.1 Lista cykliczna 18.2.2 Drzewa n-arne 18.2.2.1 Pojęcie drzewa zakorzenionego 18.2.2.2 Drzewo n-arne (zakorzenione) 18.2.2.3 Binarne drzewa wyszukiwania 18.3 Listy liniowe wiązane indeksami 18.4 Operacje strukturalne na listach wiązanych referencjami 18.4.1 Skanowanie sekwencyjne 18.4.2 Sortowanie list liniowych 18.4.2.1 Sortowanie statyczne 18.4.2.2 Sortowanie wirtualne Ćwiczenia 19 Dynamika liniowych struktur danych 19.1 Sortowanie dynamiczne list liniowych 19.1.1 Fizyczne sortowanie dynamiczne 19.1.1.1 Przestawianie miejscami pary składowych listy 19.1.1.2 Algorytmy dynamicznego fizycznego sortowania bąbelkowego 19.2 Dołączanie i usuwanie składowych w liście liniowej 19.2.1 Reprezentacje językowe dla dynamicznych list liniowych 19.2.1.1 Rozmieszczenie konsekutywne lewostronnie zaczepione 19.2.1.2 Rozmieszczenie konsekutywne prawostronnie zaczepione 19.2.1.3 Rozmieszczenie konsekutywne o końcach swobodnych 19.2.1.4 Rozmieszczenie konsekutywno-cykliczne 19.2.1.5 Algorytmy pomocnicze dla przetwarzania reprezentacji rekordowo-tablicowych zwartych 19.2.2 Wytwarzanie struktury pustej. Stany "zerowe" i .,brzegowe" oraz ich rozpoznawanie 19.2.2.1 Generowanie nowej, pustej listy liniowej 19.2.2.2 Wykrywanie pustości listy liniowej 19.2.2.3 Wykrywanie jednoelementowości listy liniowej 19.2.2.4 Wykrywanie maksymalności listy liniowej 19.2.3 Insercja nowej składowej 19.2.3.1 Insercja fizyczna i wirtualna 19.2.3.2 Ogólny schemat "wzorcowy" operacji insercji 19.2.3.3 Insercje na końcach listy liniowej 19.2.3.4 Insercje do wnętrza listy liniowej 19.2.4 Delecja składowej 19.2.4.1 Delecja fizyczna i wirtualna 19.2.4.2 Wykonalność delecji 19.2.4.3 Ogólny schemat "wzorcowy" operacji delecji z listy liniowej 19.2.4.4 Delecje na końcach listy liniowej 19.2.5 Delecje z wnętrza listy liniowej 19.2.6 Struktury ze szczególnym reżimem insercji, delecji i dostępu [0.2.6J Kolejki 19.2.6.2 Stosy 19.2.6.3 Deki 19.2.6.4 Zastosowania stosów i kolejek 19.3 Operacje na kilku strukturach liniowych 19.3.1 Łączenie kolejek zgodnie posortowanych 19.3.1.1 Ogólny schemat algorytmów łączenia 19.3.1.2 Przypadek ostrego posortowania kolejek wejściowych o składowych tego samego typu 19.3.1.3 Zastosowanie schematu łączenia do rachunku zbiorów 19.3.1.4 Przykład słabego posortowania jednej z kolejek wejściowych 19.3.2 Sortowanie list liniowych przez rozszczepianie i łączenie 19.3.2.1 Segmenty posortowane kolejki nieposortowanej 19.3.2.2 Algorytm rozszczepiania i Sączenia Ćwiczenia Bibliografia Skorowidz ISBN: 978-83-7784-102-0