Zadania na zaliczenie
Zadanie 1
Napisać program, który czyta dowolny plik tekstowy metodą wiersz po wierszu i z każdego wiersza
tworzy element listy dynamicznej. Po zakończeniu odczytu, posługując się narzędziami obsługi kolejki,
należy zorganizować wydruk tekstu w odwrotnej kolejności wierszy. Dodatkowo, należy zorganizować
wydruk znak po znaku dowolnie wskazanego wiersza.
Zadanie 2
Posortuj rosnąco plik z zadania 1 jedną z poznanych metod, przyjmując za kryterium długość
pojedynczego wiersza. Wydrukuj tak posortowany plik.
Zadanie 3
Opracować program, który z pliku tekstowego o nazwie graf.txt czyta listę incydencji grafu
skierowanego, tworzy tę listę oraz związaną z nią macierz sąsiedztwa wierzchołków i macierz incydencji.
W szczególności graf pokazany na rysunku reprezentuje lista incydencji w postaci:
Numer Numery wierzchołków
wierzchołka incydentnych
2
1
1 1,2
2 2,3
3 4
4 3
4 1
Macierz incydencji, to tablica o rozmiarach V*E. Składa się ona z V wierszy i E kolumn, jeśli krawędz
wychodzi z danego wierzchołka to piszemy w odpowiedniej kolumnie (-1), jeśli do niego wchodzi
piszemy (+1), jeśli wierzchołek nie należy do krawędzi piszemy 0, jeśli jest to pętla własna, tzn. krawędz
wychodząca i dochodząca do tego samego wierzchołka grafu oznaczamy za pomocą cyfry 2.
Macierz sąsiedztwa wierzchołków grafu - MSW (wiersze i kolumny reprezentują numery wierzchołków
grafu) oraz macierz incydencji grafu - INC rozważanego grafu - przedstawiono poniżej.
1 1 0 0 -ð1 0 0 1 2 0
éð Å‚ð éð Å‚ð
Ä™ð0 1 1 0Å›ð Ä™ð
1 -ð1 0 0 0 2Å›ð
Ä™ð Å›ð Ä™ð Å›ð
MSW =ð INC =ð
Ä™ð0 0 0 1Å›ð Ä™ð 0 1 -ð1 0 0 0Å›ð
Ä™ð1 0 0 0Å›ð Ä™ð
0 0 1 -ð1 0 0Å›ð
ëð ûð ëð ûð
Lista incydencji grafu może być zdefiniowana w sposób następujący:
typedef struct tnode *pnode; // wskaznik wierzchołka incydentnego
struct tnode // element wierzchołek incydentny
{ int a; // numer wierzchołka
pnode nextN; // wskaznik następnego wierzchołka incydentnego
};
typedef struct tlista *plista; // wskaznik poczÄ…tku listy
struct tlista // element wierzchołek główny
{ int b; // numer wierzchołka
pnode firstN; // wskaznik pierwszego wierzchołka incydentnego
plista nextL; // wskaznik następnego węzła listy
};
plista pocz; // wskaznik poczÄ…tku listy incydencji
Lista incydencji jest zapisana w pliku wierszami w taki sposób, że w każdym wierszu znajdują się
numery wierzchołków incydentnych do kolejnych wierzchołków grafu oddzielone spacją (np. sekwencja:
1 2, 2 3, 4, 1 reprezentuje graf pokazany na rysunku).
Utworzone macierze wyprowadzić na ekran i zapisać do plików wierszami. W szczególności zapisać
macierz sÄ…siedztwa do pliku tekstowego mswgraf.txt, a macierz incydencji do pliku mincgraf.txt.
Przetestować działanie programu dla wybranych grafów. Przed zakończeniem programu zwolnić pamięć.
Wyszukiwarka
Podobne podstrony:
Małgorzata Klecka Poalkoholowe dzieci ze złożona niepełnosprawnościąwykład 4 zadanie ze statkiemzadania ze stałejZadania ze wstepu do teorii mnogosciZadanie ze zraszaniem 2bpdf zadania ze znakiem zapytania docxzadanie ze slupa 1ZADANIE ZE STATYSTYKIWislicki W Zadania ze statystyki matematycznejPozysly na zadania ze zginania dwukierunkowegohala ze sciagiem algorytmwięcej podobnych podstron