Dzień Dobry.
Posiadam program, który pokazuje działanie kolejki:
#include <stdio.h>
#include <stdlib.h>
struct elem {
int d;
struct elem* n;
};
void attach(struct elem** kolejka, int d)
{
struct elem* nowy = malloc(sizeof(struct elem));
nowy->d = d;
nowy->n = NULL;
struct elem* p = NULL;
struct elem* r = *kolejka;
while (r != NULL)
{
p = r;
r = r->n;
}
if (p == NULL)
{
*kolejka = nowy;
}
else
{
p->n = nowy;
}
}
int detach(struct elem** kolejka)
{
if (*kolejka == NULL)
return -1;
int wartosc = (*kolejka)->d;
struct elem* act = *kolejka;
*kolejka = act->n;
free(act);
return wartosc;
}
int main()
{
struct elem* kolejka = NULL;
srand(time(NULL));
int i;
for (i = 0; i < 10; i++)
attach(&kolejka, i);
int z;
do
{
z = detach(&kolejka);
printf("%d ", z);
}
while (z != -1);
return 0;
}
Mam problem z jego zrozumieniem. Czy mógłby ktoś przetłumaczyć mi co oznaczają poszczególne frazy:
nowy->d = d;
nowy->n = NULL;
czym jest funkcja detach? (W skrócie)
free(act);