1.Jaka wartość jest przekazywana do funkcji przy wywołaniu
(wezel*glowa)
, a jaka przy (wezel*&glowa)
w parametrach?Do tej pory doszedłem do takiej zależności, że
(wezel*glowa)
jest wywolany gdy nie musimy edytować głowy, np. do wyznaczenia sumy elementów listy, a (wezel*&glowa)
przy zmianie glowy np. przy wstawianiu elementów do listy. 2.Czy przy sprawdzeniu, że głowa jest pusta można stosować zamiennie wyrażeń:
Kod: Zaznacz cały
while(glowa!=NULL)
Kod: Zaznacz cały
while(glowa->następny!=NULL)
3. Zamierzałem napisać program z kolejką i wydaje mi się, że nie rozumiem treści zadania, a dokładnie w poleceniu jest, żeby utworzyć strukturę 100 elementową, a w szablonie funkcji jest rozpoczęte tworzenie tablicy tablic, która ma się składać z 10 kolumn i wierszy. Chodzi mi o to, że nie wiem jak ma się ta struktura do tej tablicy tablic, bo jeżeli już tą macierz utworzymy to chyba nie jest nam potrzebna struktura... Oto treść zadania:
Zaimplementuj podstawowe operacje dla abstrakcyjnego typu danych kolejka mogącego przechowywać
maksymalnie 100 liczb rzeczywistych.
Kolejkę reprezentuj za pomocą struktury o nazwie Kolejka (0,5 p.), która zawiera 100-elementową tablicę o
elementach typu double.
Funkcje do napisania:
Kod: Zaznacz cały
dodajElement – umieszcza element w kolejce (1,0 p.)
wypiszElementy – wyświetla na ekranie w kolejności FIFO (first in-first out) wszystkie elementy, które
znajdują się w kolejce (0,5 p.)
tworzKolejke – tworzy nową, pustą kolejkę (0,5 p.)
usunKolejke – usuwa kolejkę i zawartą w niej tablicę z pamięci (0,5 p.)
przechowywania wartości z przedziału [i,i+1). Wygeneruj kilkadziesiąt wartości rzeczywistych z przedziału [0,10),
umieść każdą z nich w odpowiedniej kolejce, a następnie wypisz zawartość każdej z kolejek na ekranie. (2,0 p.)
W celach testowych użyj następującego szablonu funkcji main():
Kod: Zaznacz cały
int main() {
Kolejka** kolejki = new Kolejka*[10];
// tworzenie poszczególnych kolejek za pomocą tworzKolejke()...
int i = 0;
for (int j=0; j<25; j++) {
i = (1+17*i)%100;
double s = i*0.1; // jakaś wartość z przedziału [0,10)
cout << "Wkladam " < s < endl;
// wloz s do odpowiedniej kolejki
}
// wypisz zawartosc kazdej kolejki...
// w postaci:
// Kolejka 0: /elementy..../
// Kolejka 1: /elementy..../
// ...
// Kolejka 9: /elementy..../
// kasowanie kolejek...
return 0;