Diferente pentru heapuri intre reviziile #70 si #71

Nu exista diferente intre titluri.

Diferente intre continut:

h2. Eliminarea unui element stiind pozitia lui in heap
*TODO*: Smenul folosit la Dijkstra -- pastrarea unui vector adiacent cu pozitia fiecarui element in heap!
 
Daca eliminam un element din heap, trebuie numai sa refacem structura de heap. In locul nodului eliminat s-a creat un gol, pe care trebuie sa il umplem cu un alt nod. Care ar putea fi acela? Intrucat trebuie ca toate nivelele sa fie complet ocupate, cu exceptia ultimului, care poate fi gol numai in partea sa dreapta, rezulta ca singurul nod pe care il putem pune in locul celui eliminat este ultimul din heap. Odata ce l-am pus in gaura facuta, trebuie sa ne asiguram ca acest nod "de umplutura" nu strica proprietatea de heap. Deci vom verifica: daca nodul pus in loc este mai mare ca tatal sau, vom apela procedura percolate. Altfel vom apela procedura sift, in eventualitatea ca nodul este mai mic decat unul din fiii sai. Iata exemplul de mai jos:
!heapuri?delete1.JPG!

Nu exista diferente intre securitate.

Topicul de forum nu a fost schimbat.