budowanie listy w porządku prostym – elementy w liście znajdują się w kolejności ich dodawania, klucze podawane przez użytkownika – wersja nierekurencyjna
Jeśli dobrze rozumiem, chodzi o prostą funkcję dodającą elementy do końca listy (zastępujące jej ogon). Przecież w kodzie opublikowanym w komentarzu takowa funkcja się znajduje.
sprawdzanie długości listy (funkcja zwracająca informację o liczbie elementów w liście) - wersja rekurencyjna.
Dziwne jest to, że posiadasz w kodzie funkcje o wiele bardziej skomplikowane niż ta, a jednak nie potrafisz jej napisać… Po prostu iterujesz po kolejnych elementach listy, sprawdzając w warunku, czy doszedłeś do końca i zwracasz jej długość. Oto pseudokod:
int dlugosc_listy(struct Lista *glowa)
{
if (glowa != NULL) {
return dlugosc_listy(glowa, 1);
}
printf("\nLista jest pusta!");
return 0;
}
int dlugosc_listy(struct Lista *element, int dlugosc)
{
if (element->nastepny == NULL) {
return dlugosc;
} else {
return dlugosc_listy(element->nastepny, ++dlugosc);
}
}