Witam,
chcę napisać proste operacje na listach w C i posiadam program ale mam problem ze zrozumieniem jego działania.
Posiadam strukturę zdefiniowaną w ten sposób
typedef struct N{
int data;
struct N* next;
}N;
typedef N* node;
następnie tworzę listę i wywołuję funkcje do dodania na początek i na koniec listy.
node lista = NULL;
dodajP(&lista, 10);
dodajP(&lista, 16);
dodajK(&lista, 20);
show(lista);
I tutaj mam te dwie funkcje
void dodajP(node *head, int y)
{
node temp = malloc(sizeof(N));
temp->data = y;
temp->next = *head;
*head = temp;
}
void dodajK(node *head, int y)
{
node temp = malloc(sizeof(N));
temp->data = y;
temp->next = NULL;
while(*head != NULL) head = &((*head)->next);
*head = temp;
}
Prosiłbym o wyjaśnienie czym jest:
head
*head
&((*head)->next)
w środku tych funkcji.