부모가 자식이 있는지 여부를 확인하기 위해 최대 힙을 확인하려고합니다. 내 힙은 벡터로 구현됩니다. 처음에 함수를 작성했습니다. bool hasChildren (int loc) loc은 힙에있는 부모의 위치입니다. 내 주요 조건이었다 :힙의 부모가 자식이 있거나 없거나
if(heap[2*loc + 1] == NULL && heap[2*loc + 2] == NULL) //if there are children
문제는 당신이 경계 지수 체크 아웃 할 수 없다는 것입니다 ... 나는 포인터 연산 생각하지만 그건 너무 유효하지 않습니다. 누구든지 힙의 부모가 자식이 있는지 여부를 확인하는 방법에 대한 제안을 갖고 있습니까?
감사합니다.
구현에 벡터이 있습니까? 이 경우 C 태그를 제거 할 수 있습니다. –
그러나 적어도 하나의 하위 인덱스가 NULL이 아닌 경우 노드에 하위 노드가있는 다른 방법으로 사용하지 않아야합니까? – Vlad