Documente Academic
Documente Profesional
Documente Cultură
Limbaje Evoluate - Cap 1
Limbaje Evoluate - Cap 1
Limbaje evoluate de
programare
11/4/2013 4:59 PM
Structuri
dinamice de date
11/4/2013 4:59 PM
Masive de date
Dezavantaje:
Avantaje:
Liste liniare
Tipuri de liste:
liste circulare
Liste liniare
11/4/2013 5:00 PM
Liste liniare
Gestionarea listei:
Stiva
10
Stiva
11
Stiva
11
12
Stiva
tergerea stivei:
void StergereStiva(Nod*&cap){
while (cap!=NULL){
Nod *sters=cap;
cap=cap->urm;
delete sters;
}
cap=NULL;
}
12
13
Stiva
parcurgere stiv:
void Parcurgere(Nod *cap){
while (cap!=NULL){
cout<<cap->cheie<<" ";
cap=cap->urm;
}
cout<<endl;
}
13
14
14
Coada
15
15
Coada
16
Coada
16
17
Coada
tergerea cozii:
void StergereCoada(Nod*&cap, Nod*&ultim){
while (cap!=NULL){
Nod *sters=cap;
cap=cap->urm;
delete sters;
}
cap=ultim=NULL;
}
17
18
18
crearea listei
adugarea unui nod
accesarea unui nod (cutare,
extragere informaie etc.)
parcurgerea listei
tergerea unui nod
tergerea listei
modificare,
19
19
20
20
21
21
22
23
24
Parcurgerea listei:
parcurgere iterativ
void Parcurgere(Nod *cap){
// afisarea nodurilor listei
while (cap!=NULL){
cout<<cap->cheie<<" ";
cap=cap->urm;
}
cout<<endl;
}
24
25
parcurgere recursiv
void ParcurgereRec(Nod *cap){
// afisarea recursiva a listei
if (cap!=NULL){
cout<<cap->cheie<<" ";
ParcurgereRec(cap->urm);
}
else cout<<endl;
}
25
26
26
27
27
28
28
29
29
30
30
31
tergerea listei:
void StergereLista(Nod*&cap){
// stergerea tuturor nodurilor listei
while (cap!=NULL){
Nod *sters=cap;
cap=cap->urm;
delete sters;
}
cap=NULL;
}
31
32
Sortarea listei
void SortareLista(Nod*&cap) {
// creeaza o lista noua sortata
Nod *sortat=NULL, *temp=cap;
while (temp!=NULL){
AdaugareSort(sortat,temp->cheie);
StergereNod(temp,temp->cheie);
}
cap=sortat;
}
32
33
END
33