Diferente pentru treapuri intre reviziile #68 si #69

Nu exista diferente intre titluri.

Diferente intre continut:

Cum am obţinut acelaşi şir de inegalităţi, am arătat existenţa invariantului arborilor de căutare.
Reţineţi că această rotaţie împreună cu imaginea sa în oglindă, rotaţia spre stânga dacă urmărim desenul de la dreapta spre stânga, stau la baza algoritmului de '$inserare$':treapuri#inserare!
 
O altă situaţie în care ne pune operaţia de '$ştergere$':treapuri#stergere este cea în care arborele are o structură de heap, cu excepţia lui $z$ care are o prioritate mai mică decât a ambilor fii. Să presupunem că în figura de mai sus $w$ este fiul cu prioritatea mai mare. Dacă efectuăm o rotaţie spre dreapta în $z$, radăcina va deveni $w$ care are în continuare subarborele valid stâng $A$, iar pe $z$ ca fiu valid în dreapta. Nivelul lui $z$ a scăzut cu $1$ dar este posibil ca subarborele său să nu aibă structura de heap şi să ne situăm fie în cazul acesta, când ambii fii au prioritatea mai mare fie în cazul de mai înainte când doar unul din fii are prioritatea mai mare. Vom continua să îl rotim pe $z$ până când vom redobândi structura de heap.
 
Cazurile simetrice sunt imaginea în oglindă pentru cazurile de mai sus. Astfel, va fi necesar să facem o rotaţie spre stânga.
Reţineţi că această rotaţie împreună cu imaginea sa în oglindă, rotaţia spre stânga dacă urmărim desenul de la dreapta spre stânga, stau la baza algoritmilor de '$inserare$':treapuri#inserare şi '$ştergere$':treapuri#stergere!
Pentru o rotaţie sunt necesare doar câteva operaţii cu pointeri.
h3(#stergere). Ştergere
Operaţia de ştergere este inversul operaţiei de inserare. Să presupunem că dorim să ştergem un nod $z$. Pentru a înţelege mai uşor, îi vom atribui prioritatea $0$, prioritatea cea mai mică. În continuare îi vom aplica treapului $T$ al doilea tip de rotaţii pentru ca să redobândească proprietatea de heap. Este evident că, la sfârşitul algoritmului, $z$ va fi o frunză şi nu ne rămâne decât să îl ştergem.
Operaţia de ştergere este inversul operaţiei de inserare. Să presupunem că dorim să ştergem un nod $z$. Scopul este  îl aducem în postura de frunză pentru a-l şterge. Astfel, pentru a menţine cei doi invarianţi (exceptându-l pe $z$) vom alege fiul cu prioritatea mai mare şi îl vom '$roti$':treapuri#rotatii în locul lui $z$, cât timp acesta nu este frunză. Atunci când $z$ devine frunză îl vom şterge.
Complexitate: $O(log N)$.

Nu exista diferente intre securitate.

Topicul de forum nu a fost schimbat.