Documente Academic
Documente Profesional
Documente Cultură
colectie de elemente cu propietatea ca fiecare element contine adresa elementului urmator din lista.
Un element este format din doua parti, o parte de informatie, o a doua parte de legatura (legatura cu urmatorul
element al listei). Adresa ultimului element al listei merge la NULL.
Informatia
Adresa
Informatia
Adresa
Informatia
Adresa
Primul element
al listei
Memorarea unei liste simple inlantuite
struct lista {
// partea de informatii
Informatia
Adresa
Ultimul
element al listei
Ex. Consideram o lista simplu inlantuita de
numere intregi.
struct lista {
int nr;
lista *adresa;
};
}
void Afisare(lista *prim) {
1. Parcurgerea listei
Se va pleca de la primul element al listei p = prim;
Cat timp p este diferit de NULL se va afisa informatia cout<<p->nr;
si se va trece la urmatorul element al listei p = p->adresa;
lista *p=prim;
whlie (p!=NULL) {
cout<<p->nr<< ;
p = p->adresa;
}}
p ->adresa = NULL;
- noul element se leaga de celelalte - adica de ultimul element al listei ultim
->adresa = p; (adresa ultimului element al listei va merge la p)
- el va fi in acelasi tim si ultimul element ultim = p;
struct lista {
int nr;
lista *adresa;};
Nr.intreg
Adresa
Informatia
Adresa
Informatia
Adresa
Informatia
Adresa
ultim
Informatia
if (prim == NULL)
{
prim = new lista;
prim ->nr=numar;
prim ->adresa=NULL;
ultim = prim;
}
else
{
p = new lista;
p ->nr=numar;
p ->adresa=NULL;
ultim->adresa = p;
ultim = p;
}
Adresa
Noul ultim
Adresa
Adresa
Adresa
12
Adresa
p ->adresa
q ->adresa = p->adresa;
delete p;
Adresa
Adresa
12
Adresa
p ->adresa
Adresa
Adresa
Adresa
12
Adresa
lista *p = prim;
Adresa
Elementul nou
if (p!=NULL) {
q = new lista;
q ->nr = care;
q - elementul inserat
p ->adresa = q;
}}
5
Adresa
Adresa
Adresa
Adresa
12
Adresa
Daca elementul care trebuie sters este chiar primul element al listei
Adresa
prim
Adresa
prim ->adresa
Adresa
12
Adresa
p=prim;
Noua lista:
6
Adresa
Adresa
12
Adresa
prim
void Stergere (lista *&prim, int care) {
{q = p; p = p->adresa; }