• Nie Znaleziono Wyników

Laboratorium informatyki II. Język Pascal. Semestr letni. Ćwiczenie 9.

N/A
N/A
Protected

Academic year: 2021

Share "Laboratorium informatyki II. Język Pascal. Semestr letni. Ćwiczenie 9."

Copied!
1
0
0

Pełen tekst

(1)

Laboratorium informatyki II. Język Pascal. Semestr letni.

Ćwiczenie 9.

Drzewa i grafy

Cel ćwiczenia: projektowanie algorytmów wykorzystujących drzewa i grafy; tworzenie

i usuwanie drzewa poszukiwań binarnych; znajdowanie w drzewie elementu o ustalonej wartości klucza; wyprowadzanie zawartości drzewa na ekran; metody reprezentacji grafów;

lista incydencji, macierz incydencji i macierz sąsiedztwa wierzchołków.

1. Opracować procedury umożliwiające obsługę drzewa poszukiwań binarnych określonego za pomocą definicji type L = ^dbin; dbin = record klucz: integer; lewy, prawy: L; end;

var pocz: L (wierzchołek - początek drzewa) („lewe” następniki węzła zawierają elementy o wartościach mniejszych, natomiast „prawe” następniki węzła elementy

o wartościach większych). Zaprojektować procedury: a) dodawania losowego elementu (np. losowa liczba z przedziału od 0 do 100) do drzewa (element powinien być wstawiony do drzewa z zachowaniem porządku); b) znajdowania i wyświetlania elementu o podanej wartości klucza; c) wyświetlania na ekranie zawartości drzewa (w postaci drzewa lub posortowanego ciągu kluczy zawartych w drzewie); d) usuwania całego drzewa (zwolnić pamięć). Odpowiednie procedury zrealizować w postaci opcji w programie. Wyświetlić stan pamięci na początku i na końcu programu (MemAvail).

2. Opracować procedurę, która umożliwia przeczytanie z pliku tekstowego igraf0.txt listy incydencji grafu skierowanego (elementy listy są zapisane wierszami i oddzielone

spacjami), a następnie wyświetlenie skonstruowanej listy oraz związanych z nią macierzy sąsiedztwa wierzchołków i macierzy incydencji (pętlę własną, tj. krawędź wychodzącą i dochodzącą do tego samego wierzchołka oznaczać w macierzy incydencji cyfrą 2).

Zapisać macierz sąsiedztwa wierzchołków w pliku tekstowym mgraf0.txt wierszami. Lista incydencji grafu jest zdefiniowana w sposób następujący:

Type Pnode = ^Tnode;

Tnode = record na: integer; nextN: Pnode; end; { wierzchołki incydentne }

Type Plista = ^Tlista;

Tlista = record nb: integer; firstN: Pnode; nextL: Plista; end; { wierzchołki grafu }

--- --- --- | | | | | |

| Tlista |---->| Tnode |--->| Tnode | | | | | | |

--- --- --- |

| --- | |

| Tlista |----> ...

| | ---

Cytaty

Powiązane dokumenty

Opracować procedurę, która tworzy losowy łańcuch typu string[20] złożony z małych liter (znaki łańcucha należą do przedziału [’a’,...,’z’].. Opracować procedurę,

b) odczytywania elementu z kolejki; c) wyprowadzania zawartości kolejki na ekran d) wyprowadzania długości kolejki oraz zawartości zmiennych pocz (początek kolejki) i kon

Cel ćwiczenia: projektowanie algorytmów wykorzystujących pliki tekstowe (text) oraz pliki zdefiniowane (file of ...); łączenie posortowanych plików; wstawianie danej

wyprowadzanie na ekran zawartości dowolnego pliku; kopiowanie fragmentu pliku, modyfikowanie zawartości pliku, znajdowanie zadanej sekwencji bajtów w pliku;

Cel ćwiczenia: definiowanie zmiennych wskaźnikowych; dostęp do zmiennych za pomocą wskaźników; inicjowanie wskaźników adresami zmiennych statycznych; wskaźniki typu

Opracować procedury umożliwiające obsługę kolejki typu FIFO zrealizowanej za pomocą listy jednokierunkowej o następującej strukturze type L = ^lst; lst

inicjowanie wskaźnika na obszar pamięci o ustalonym adresie i rozmiarze; wczytywanie do pamięci pliku o rozmiarze przekraczającym rozmiar segmentu (64KB).. Opracować

Cel ćwiczenia: projektowanie bibliotek DLL oraz modułów importowych, wykorzystujących funkcje biblioteczne; funkcja wyjścia z biblioteki DLL; wyprowadzanie identyfikatora1.