CATEGORII DOCUMENTE |
Liste inlantuite
Intalnim si utilizam liste in fiecare zi: la scoala, profesorul are cate o lista cu elevii fiecarei clase - catalogul; la restaurant gasim o lista cu produsele oferite si preturile lor - meniul; la o firma de calculatoare vom primi o lista de componente si preturi - oferta s.a.m.d. Prin urmare, utilizam liste ori de cate ori este necesar sa organizam intr-o forma secventiala un ansamblu de informatii.
Lista este o structura de date abstracta constituita dintr-o succesiune de elemente. Fiecare element din lista are un succesor si un predecesor.
Observatii
Inserarea unui nod intr-o lista simplu inlantuita circulara
Pentru inserare vom implementa o functie numita Insert cu 3 parametri:
Vom aloca dinamic memorie pentru un nou nod, a carui adresa o vom retine in variabila pointer q. In zona de informatii vom memora valoarea x (q->inf=x
La inserare aar doua cazuri distincte. Daca Prim==NULL (lista este vida) noul nod inserat va fi singurul element din lista (deci in partea de legatura von retine adresa sa); daca Prim!=NULL inserarea se face in interiorul listei.
void Insert(Lista & Prim, Lista p, int x)
else
}
Stergerea unui nod dintr-o lista simplu inlantuita circulara
Pentru stergere vom implementa o functie denumita Delete cu doi parametri:
Si la stergere apar doua cazuri distincte. Daca p->urm==Prim va fi sters primul nod din lista, deci valoarea parametrului Prim va fi actualizata (va primi adresa urmatorului nod din lista sau NULL daca lista era formata dintr-un singur nod); daca p-<urm!=Prim va fi sters un nod oarecare din interiorul listei.
void Delete(Lista & Prim , Lista p)
delete q;
}
Parcurgerea unei liste simplu inlantuite circulare
Pentru a parcurge o lista simplu inlantuita circulara, vom utiliza un pointer p, caruia ii vom atribui initial adresa primului element din lista. La fiecare pas, se viziteaza nodul curent, apoi se trece la nodul urmator (p=p->urm), pana cand se revine la nodul de plecare. Functia urmatoare realizeaza parcurgerea unei liste simplu inlantuite circulare cu afisarea informatiilor din noduri:
void Afisare(Lista Prim)
while (p!=Prim);
cout<<endl;
}
Politica de confidentialitate | Termeni si conditii de utilizare |
Vizualizari: 2447
Importanta:
Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved