Documente Academic
Documente Profesional
Documente Cultură
Structuri de Date - Cursdwd 4
Structuri de Date - Cursdwd 4
1 --
-- 4. 2 --
-- 4. 3 --
-- 4. 4 --
-- 4. 5 --
-- 4. 6 --
Copiere lista
e1
e2
e1
....
e3
c
aL
e1
e2
e1
e2
e3
Copiere lista
Algoritm Copiere
{ initializari;
cat timp exista celula de copiat
{ daca nu reuseste alocare celula copie
atunci
{ distruge copia partiala;
intoarce NULL;
}
altfel
{ avans la sfarsit copie partiala;
avans in lista sursa;
}
}
intoarce adresa copie;
}
-- 4. 7 --
-- 4. 8 --
Distruge lista
a
e1
aux
...
e1
...
aux
void DistrL(ALista a)
/* elimina toate cel.din lista
{ TLista aux; /*
while ( *a != NULL)
/* cat timp mai exista celule
{ aux = *a; /* pregateste eliminarea celulei curente
*a = aux->urm;
/* avans la celula urmatoare
free (aux);
/* elibereaza spatiu */
}
}
*/
*/
*/
*/
-- 4. 9 --
Mutare celula
as
(2)
(2)
as
.....
.....
(1)
aux
(3)
(1)
aux
(4)
.....
ar
ar
as
(2)
.....
(3)
(4)
ar
.....
.....
-- 4. 10 --
e1
e2
e3
e4
e5
e6
e7
r
......
a
e1
e3
e2
e5
e4
e7
e6
-- 4. 11 --
Algoritm SeparaIterativ:
{ initializari;
cat timp in sursa exista pereche de celule
{ extrage a doua celula din pereche;
ataseaza la sfarsitul listei rezultat;
}
}
-- 4. 12 --
a1
a2
a3
b1
b2
b3
b4
b5
a1
b1
a2
b2
a3
b3
b4
b5
-- 4. 13 --
Algoritm IntercalareA
{ initializari lista rezultat (r) si aux;
cat timp exista pereche de celule a, b
{ aloca spatiu pentru doua celule
la sfarsit r;
daca esec alocare
atunci { distruge r;
intoarce NULL;
}
altfel { copiaza info din a si b in
cele doua noi celule din r;
avans in a si b;
avans la sfarsit r;
}
}
-- 4. 14 --
-- 4. 15 --
-- 4. 16 --
a1
a2
a3
b1
b2
b3
b4
b5
a1
a2
a3
b1
b2
b3
a4
a5
-- 4. 17 --
a2
a3
a4
a4
a3
a2
a1
Cazuri particulare:
- lista vida
- lista cu o singura celula
nu este necesara nici o prelucrare
a1
a2
(i2)
p
a3
-- 4. 18 --
a4
(i1)
a
(4)
aux
ai
(1)
ai-1
(3)
p (2)
....
....
a2
a1
-- 4. 19 --
13
-5
22
10
-5
10
11
13
22
Parametri:
- adresa listei
- functia de verificare a relatiei de ordine
Cazuri particulare:
- lista vida
- lista cu o singura celula
-- 4. 20 --
13
-5
22
20
-5
11
13
22
20
-5
11
13
22
20
-5
11
13
22
20
-5
11
13
20
22
-- 4. 21 --
-- 4. 22 --
a
e
a
e
12
-- 4. 23 --