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ă).

Smile Life

Show life that you have a thousand reasons to smile

Get in touch

© Copyright 2024 DOKU.TIPS - All rights reserved.