Algorithm/이론

[자료구조] heap/최대 heap에서 delete

SweetDev 2019. 5. 31. 17:10

이렇게 생긴 max heap에서 root인 50을 지운다고 해 보자. 

 

 

 

우리가 쓰는 알고리즘은 가장 오른쪽에 있던 값을 떼서 루트에 넣고 본다.(대책 노...)

 

 

이제 adjust를 하는데, 31이랑 49랑 바꿔본다. 31이랑 또 48이랑 바꾼다.  이러면 다시 max heap의 조건을 충족한다. 

 

 

 

근데 바꾸는 기준이 뭘까?? 44랑 바꿔도 max heap은 됐는데...? 이건 코드를 보면 알 수 있다. 

 

 

//코드가 정말 보기싫다. 다음에 정리하자