이전 주제 보기 :: 다음 주제 보기 |
글쓴이 |
메시지 |
류원룡
가입: 2013년 9월 4일 올린 글: 4
|
올려짐: 2013년9월12일 19:52 주제: 숙제1 5번 질문입니다. |
|
|
기본으로 제공해 주신 함수중에 rank와 shake에 관하여 질문드립니다.
insert 코드에서 'terminal node의 경우 rank가 0'이라는 것을 유추할 수 있었는데요, rank 코드에서 보면 EMPTY heap의 rank 또한 0이라고 되어있었습니다.
따라서 shake에서 두 heap의 rank를 비교할 때, empty heap과 terminal node의 경우 둘 다 rank가 0이 되어 return되는 heap의 rank가 무조건 1 이상이 되어버립니다.
NODE (0, 3, NODE (0, 5, EMPTY, EMPTY), EMPTY) 의 형태가 되는 경우, root node의 rank는 1이 아닌 0이 되는게 옳은것이어야 할텐데 뼈대코드의 수정이 필요할 것 같습니다.
답변부탁드립니다. 감사합니다. |
|
위로 |
|
 |
최준원
가입: 2007년 3월 30일 올린 글: 149
|
올려짐: 2013년9월12일 20:06 주제: |
|
|
좋은 지적입니다
작년에도 같은 문제가 있었고, EMPTY heap 의 rank 를 -1 로 수정하였습니다.
이번에도 같은 방법을 적용하겠습니다.
코드: |
let rank = function EMPTY -> -1
| NODE (r, _, _, _) -> r
|
와 같이 뼈대코드를 수정합니다. |
|
위로 |
|
 |
김원용
가입: 2009년 9월 29일 올린 글: 11
|
올려짐: 2013년9월13일 3:01 주제: ㅠㅠㅠ |
|
|
악.. 제가 그거 때문에 첫 베이스케이스를 shake를 안쓰고 구현했는데 ㅠㅠ 다시짜겠습니다 ㅠㅠㅠㅠ |
|
위로 |
|
 |
|
|
새로운 주제를 올릴 수 없습니다 답글을 올릴 수 없습니다 주제를 수정할 수 없습니다 올린 글을 삭제할 수 없습니다 투표를 할 수 없습니다
|
Powered by phpBB 2.0.21-7 (Debian) © 2001, 2005 phpBB Group Translated by kss & drssay
|