11.4.1. Crearea unei liste dublu inlantuite (LDI)
2020/03/09 in Programare in C
Definim mai jos functia dcrelist utilizata pentru a crea o LDI.
Ea este analoaga cu functia
crelist
definita la paragraful 11.1.1.
Functiile incnod si elibnod au aceeasi semnificatie si utilizare ca in cazul functiei crelist.
int dcrelist() {
/* - creaza o lista dublu inlantuita;
- returneaza:
- 0 - la eroare;
- -1 - creare normala. */
extern TNOD *prim, *ultim;
int i, n;
TNOD *p;
n = sizeof(TNOD);
prim = ultim = 0;
while (((p = (TNOD *)malloc(n)) != 0) && ((i = incnod(p)) == 1))
if (prim == 0) {
prim = ultim = p;
p -> prec = p -> urm = 0;
}
else {
ultim -> urm = p;
p -> prec = ultim;
p -> urm = 0;
ultim = p;
}
if (p == 0) {
printf("memorie insuficienta\n");
exit(1);
}
elibnod(p);
return i;
}