Uwaga! Modyfikacje podanych deklaracji będą traktowane jako brak

Transkrypt

Uwaga! Modyfikacje podanych deklaracji będą traktowane jako brak
A
Uwaga! Modyfikacje podanych deklaracji będą traktowane jako brak właściwego rozwiązania. Istotne fragmenty algorytmu (m.in. rola parametrów) muszą być opatrzone krótkimi komentarzami. Rysunki mile widziane.
1. (6 pkt.) Zaprojektować funkcję, która inicjalizuje zaznaczoną część tablicy typu tabl
ściami z kolejnych elementów listy. Jeżeli lista okaże się
X00
X01
X02
#define N 6
X10
X11
X12
typedef int tabl [N][N];
struct Ele {
X20
X21
X22
struct Ele * nn;
X30
X31
X32
int aa;
X40
X41
X42
};
X50
X51
X52
(wierszami) wartoX03
X04
X05
X13
X14
X15
X23
X24
X25
X33
X34
X35
X43
X44
X45
X53
X54
X55
za krótka — rozpoczynamy na nowo od jej początku. W przypadku listy pustej zaznaczone elementy tablicy
otrzymują wartość przekazaną przez dodatkowy parametr, który służy również do inicjalizacji nie zaznaczonych elementów tablicy.
Zadeklarować potrzebne zmienne i podać przykładowe wywołanie funkcji.
2. (9 pkt.) Zaprojektować wg. podanych prototypów:
struct Box * NewBox(double);
void CopyNo1 (struct Box *, struct Box **);
1)funkcję NewBox tworzącą element listy i inicjalizującą go odpowiednio; 2) funkcję CopyNo1 która
tworzy kopię listy wzorcowej z pominięciem pierwszego elementu listy. Funkcja musi korzystać z NewBox .
Pamiętać o przypadkach szczególnych (np. lista pusta, jedno-elementowa).
Podać przykładowe wywołanie funkcji (zakładając, że lista została uprzednio utworzona).
B
Uwaga! Modyfikacje podanych deklaracji będą traktowane jako brak właściwego rozwiązania. Istotne fragmenty algorytmu (m.in. rola parametrów) muszą być opatrzone krótkimi komentarzami. Rysunki mile widziane.
1. (6 pkt.) Zaprojektować funkcję wg. podanego prototypu, która znajduje wartość najmniejszą w zaznaczonej części tablicy typu tabl .
X00
X01
X02
X03
X04
X05
#define NN 6
X10
X11
X12
X13
X14
X15
typedef int tabl [N][N];
struct Ele {
X20
X21
X22
X23
X24
X25
struct Ele * nn;
X30
X31
X32
X33
X34
X35
int aa;
X40
X41
X42
X43
X44
X45
};
X50
X51
X52
X53
X54
X55
int zlicz (tabl);
Zadeklarować potrzebne zmienne i podać przykładowe wywołanie funkcji.
2. (9 pkt.) Zaprojektować wg. podanego prototypu:
void CopyList (struct Box *, struct Box **);
funkcję CopyList, która kopiuje co drugi element listy, zaczynając od pierwszego. Pamiętać o przypadkach
szczególnych (np. lista pusta, jedno-elementowa). Proszę również spróbować rozwiązanie rekurencyjne.
Podać przykładowe wywołanie funkcji (zakładając, że lista została uprzednio utworzona).
1
C
Uwaga! Modyfikacje podanych deklaracji będą traktowane jako brak właściwego rozwiązania. Istotne fragmenty algorytmu (m.in. rola parametrów) muszą być opatrzone krótkimi komentarzami. Rysunki mile widziane.
1. (6 pkt.) Zaprojektować funkcję wg. podanego prototypu, która szuka w zaznaczonej części tablicy typu
tabl (wierszami, kolejne pary elementów) wzorca występującego w którymś z elementów listy. W przypadku
znalezienia zwraca położenie (pierwszego wystąpienia) początku wzorca (numer wiersza i kolumny). Warto
wprowadzić pomocniczą funkcję przeglądającą listę.
X00
X01
X02
X03
X04
X05
#define NN 6
X
X
X
X
X
X15
10
11
12
13
14
typedef int tabl [N][N];
X20
X21
X22
X23
X24
X25
struct Ele {
struct Ele * nn;
X30
X31
X32
X33
X34
X35
int aa, bb;
X40
X41
X42
X43
X44
X45
};
X50
X51
X52
X53
X54
X55
void znajdz (tabl , struct Ele *, int*, int*);
Zadeklarować potrzebne zmienne i podać przykładowe wywołanie funkcji.
2. (9 pkt.) Zaprojektować wg. podanego prototypu:
void UsunCo2 (struct Box **);
funkcję UsunCo2 , która usuwa co drugi element listy (zwalniając pamięć) poczynając od pierwszego
(tzn. 1,3,5, ldots). Pamiętać o przypadkach szczególnych (np. lista pusta, jedno-elementowa). Uwaga! Warto
zacząć od rozwiązania rekurencyjnego!
Podać przykładowe wywołanie funkcji (zakładając, że lista została uprzednio utworzona).
D
Uwaga! Modyfikacje podanych deklaracji będą traktowane jako brak właściwego rozwiązania. Istotne fragmenty algorytmu (m.in. rola parametrów) muszą być opatrzone krótkimi komentarzami. Rysunki mile widziane.
1. (6 pkt.) Zaprojektować funkcję wg. podanego prototypu, która zlicza liczbę wystąpień wartości z wskazanego elementu listy w zaznaczonej części tablicy typu tabl .
X00
X01
X02
X03
X04
X05
#define NN 6
X10
X11
X12
X13
X14
X15
typedef int tabl [N][N];
struct Ele {
X20
X21
X22
X23
X24
X25
struct Ele * nn;
X30
X31
X32
X33
X34
X35
int aa;
X40
X41
X42
X43
X44
X45
};
X50
X51
X52
X53
X54
X55
int zlicz (tabl , struct Ele *);
Zadeklarować potrzebne zmienne i podać przykładowe wywołanie funkcji.
2. (9 pkt.) Zaprojektować wg. podanego prototypu:
void OdwrList (struct Box *, struct Box **);
funkcję OdwrList, która odwraca listę (niszcząc jej pierwotną postać). Pamiętać o przypadkach szczególnych
(np. lista pusta, jedno-elementowa). Proszę również spróbować rozwiązanie rekurencyjne — proponuję wprowadzić dodatkowy parametr. Przy pierwszym wywołaniu jego wartość jest obojętna, przy wyjściu wskazuje
na koniec listy.
Podać przykładowe wywołanie funkcji (zakładając, że lista została uprzednio utworzona).
2

Podobne dokumenty