HEAPS Flashcards
Hva er en binær heap?
Et binært tre som oppfyller følgende egenskaper:
- Hver node v, som ikke er rotnoden, er større enn foreldrenoden.
- Binærtreet må være komplett (= fylles opp fra venstre mot høyre)
Hva er O-notasjonen på innsetting og sletting i binære heaps?
O(log(n))
Binære heaps og balanserte søketrær har samme kompleksitet, men hva er det som gjør binære heaps bedre?
- heaps er komplette, så de er alltid balanserte
- heaps trenger ingen rotasjoner
- De er mer balanserte enn både AVL-trær og rød-svarte trær.
Hvor bør man forsøke å legge til en ny node i en binær heap?
På den neste ledige plassen.
Hvis den nye noden er mindre enn foreldrenoden, må disse bytte plass. Dette må fortsette rekursivt oppover til en node har en foreldrenode som er mindre enn seg selv
Hvordan bør man gå frem ved sletting av en node i en binær heap?
Bytt verdien i rotnoden med den verdien i den “siste” noden i treet. Hvis noden er større enn en av barna, så må den bytte plass med den minste. Fortsett rekursivt.
Binær heap: Hvilken plass ligger foreldrenoden til A[i] på?
På plass [(i-1)/2]
Hvis man skal slette en node i en binær heap, hvilken slettes?
Den minste
Hva er forskjellen på min-heap og max-heap?
Min-heap så er den minste noden rotnoden. Max-heap så er den største noden rotnoden.