Pojęcie typu danej
Podstawowe podziały typów danych
Implementacja typów prostych
Definicja pojęcia algorytmu
Cechy algorytmów
Przykłady
Typ tablicowy
Tablica jako agregat danych: reprezentacja w pamięci, statyczność tablic, tablice wielowymiarowe
Schematy algorytmów obsługi tablic: wstawianie i odczyt, wyszukiwanie elementu
Metody sortowania tablic: tablice indeksowe, sortowanie przez proste wstawianie, sortowanie przez prostą zamianę, schemat algorytmu QuickSort
Cechy algorytmów sortowania tablic
Typ strukturowy i obiektowy
Schemat strukturalizacji rekordu i unii
Metody dostępu do składowych
Przykłady zastosowań
Typ plikowy, strumienie
Plik sekwencyjny
Plik logiczny i fizyczny
Zmienna plikowa
Bufor pliku
Komunikacja programu z otoczeniem - strumienie
Standardowa obsługa pliku
Struktury i algorytmy rekurencyjne przykłady
Stos dla zmiennych w rekurencji
Kłopoty z rekurencją
Rekurencja a iteracja
Typ wskaźnikowy
Znaczenie wskaźników w programowaniu
Zmienna wskaźnikowa i wskazująca
Alokacja statyczna i dynamiczna zmiennych
Programowanie struktur dynamicznych
Rekurencyjne typy danych
Listy liniowe
Zastosowania list liniowych
Dynamiczne LIFO-stosy i FIFO-kolejki, kolejki z prioritetem, listy dwukierunkowe i cykliczne, samoorganizujące się listy
Niektóre algorytmy obsługi list liniowych
Drzewa i lasy
Rekurencyjna definicja drzewa
Reprezentacje drzew
Algorytm przekształcania dowolnego drzewa w drzewo binarne
Drzewa binarne
Algorytmy obsługi drzew binarnych
Drzewo binarnych poszukiwań
Drzewa wyważone i dokładnie wyważone
Kopce
Wyrażenia kropkowe
Lasy
Grafy
Metody reprezentacji grafu
Podstawowe operacje na grafach
Algorytm szukania w głąb dla grafu
Inne algorytmy przeszukiwania
Przeszukiwanie binarne
Kodowanie mieszające
Elementy algorytmiki przeszukiwania tekstów
Algorytmy z powrotami schemat ogólny, przykłady
Metody usprawniania „żarłocznych” algorytmów: systematyczne, heurystyczne