No cóż, lista ma być strukturą.
struct List
{
//tutaj będzie cały kod
}
Wskaźniki, przykład z wyjaśnieniem:
void MetodaBezWskaznika(int var) //metoda wykorzystuje kopię zmiennej, nie pracuje na oryginale dlatego wszelkie zmiany zostaną zachowane tylko we wnętrzu tej funkcji
{
var += 5;
}
void MetodaZeWskaznikiem(int & var) //metoda wykorzystuje referencję do zmiennej, pracuje na oryginale dlatego wszelkie zmiany będą zachowane przez całe życie zmiennej przysłanej do metody.
{
var += 5;
}
int main()
{
int variable = 5;
int * pointerToVariable = &variable; //wskaźnik na daną zmienną
MetodaBezWskaznika(variable);
printf("%d\n", variable); //5
MetodaZeWskaznikiem(*pointerToVariable);
printf("%d", variable); //10
}
Lista ma zawierać referencje do struktur Osoba które mają w sobie struktury opisujące daty urodzin osób które one reprezentują, ma to wyglądać mniej więcej tak:
struct Osoba
{
int ID;
char * imie;
char * nazwisko;
char * miasto;
Date dataUrodzenia;
Osoba * poprzedni;
Osoba * nastepny;
Osoba(int _ID, char * _imie, char * _nazwisko, char * _miasto, Osoba * _poprzedni, Osoba * _nastepny, Date _dataUrodzenia)
{
ID = _ID;
imie = _imie; //itd..
}
};
struct Date
{
int dzien, miesiac, rok;
};
Mam nadzieję że trochę pomogłem, gdzieś mogą być błędy dlatego że nie piszę w C tylko w C++, ale myślę że nie będzie. Więcej o implementacji listy dwukierunkowej w C tutaj:
http://eduinf.waw.pl/inf/alg/001_search/0087.php