Dau coroană! Scrieți un subprogram care transformă o listă dublu înlănțuită într-una circulară, cunoscând: a) adresa primului și ultimului element b) doar adresa primului
Indicații. în unele aplicații este necesar să se prelucreze structuri de date înlănțuite simple sau duble circulare. Acestea se obțin din liste liniare printr-o singură operație dacă lista este simplă sau prin două operații dacă lista este dublă, definită astfel:
struct nod
{int info; nod *urm,*prec;};
nod *prim,*ultim;
Lista devine circulară prin operațiile:
ultim->next=prim; //următorul ultimului devine primul
prim->back=ultim; //precedentul primului devine ultimul
Prin urmare nici un nod nu va mai conține pentru câmpurile *urm sau *prec valoarea 0 (ultimul și primul în cazul listelor liniare), ceea ce va determina modificarea funcției de parcurgere (se parcurge lista pornind de la o adresă transmisă).