mam taki kod funkcji która dołącza nowy element do listy i kilki rzeczy w niej nie rozumiem tj:
Kod: Zaznacz cały
int push(int x)
{
Element_t *nowy = (Element_t *) malloc ( sizeof (Element_t) ); //tutaj tworzymy nowy element ale czy nie wystarczyłoby tylko : Element_t *nowy
if (!head) // nie bardzo rozumiem ten zapis .. czyli co jest różne od głowy ??
{
nowy->next = NULL;
nowy->prev = NULL;
nowy->element = x;
head = nowy;
tail = nowy; // tutaj powstaje lista która składa się z jednego elementu
// tego nowego to rozumiem
}
else
{
Element_t *tmp; //nie bardzo rozumiem ta druga połowe kodu wiec czy ktos
tmp = head; //może wytlumaczyc co się dzieje w każdej linijce? zaczynajac od tej
nowy->next = head;
nowy->prev = NULL;
nowy->element = x;
(tmp->prev)=nowy;
head = nowy;
}
return 0;
}
Dziękuje za pomoc