Zad 1.
void poloz(struct list "pierwszy, struct list "ostatni, int i)
struct list 'tmp = 'pierwszy, 'nowy;
nowy = (struct list')malloc(sizeof(struct list));
nowy->klucz = i;
nowyonastepny = NULL;
if(tmp=NULL)('pierwszy=*ostatni=nowy;}
else{
while(tmp->nastepny){tmp= tmp->nastepny;} tmp->nastepny=nowy;
return;
1.1 Sprawdź, czy powyższa funkcję dodającą element do kolejki FIFO działa poprawnie. Jeżeli zawiera błędy, wskaż co należy zmodyfikować.
1.2 Oceń złożoność czasową funkcji poloz(). Odpowiedz, czy możliwe jest stworzenie szybszej funkcji dodającej do kolejki FIFO, przyjmującej takie argumenty jak funkcja poloz(). Jeżeli tak, to zaproponuj jej kod.
Zad 2.
Napisz funkcję usuwającą z listy dwukierunkowej, która usuwa jeden element o kluczu a, z wyjątkiem
elementu na końcu listy.
void usun(struct list "pierwszy, int a)
Zad 3.
Narysuj drzewo czerwono czarne po operacjach
Stan początkowy; puste drzewo
dodaj(l);
dodaj(5);
dodaj(7);
dodaj( 10);
dodaj(14);
dodaj(8);
dodaj(28)
dodaj(30)
Zad 4.
Napisz kod funkcji, która obliczy sumę elementów w drzewie.