트리에 저장된 게시 목록에서 h-index을 계산해야합니다. I 라인 3에서 중지하고 3에게 문제를 반환해야h- 인덱스 계산
line 1 10
line 2 5
line 3 4
line 4 0
: 내가 그것을 모습 인용
의 위치 번호의 목록을 얻는 점점 줄어드는 순서로 트리를 통과한다 했는가
소정의 실시 예와 그것이 거짓 2 3> 1> 4 있기 때문에 0에서 정지
line 1 4
line 2 0
line 3 0
이 경우이다. 대신 1을 리턴해야합니다. 왜 나 한테 설명 할 수 있니? 나는 그것이 수학자의 질문과 비슷하다는 것을 알고 있지만, 그 이후에 뭔가 잘못 되었다면 다시 구현해야 할 수도 있습니다. 여기
은 좀 미묘 말이냐 코드 아마도
int index_h_calc(rbtree_node n, int *i){
if (n == NULL) {
fputs("<empty tree>\n", stdout);
return 0;
}
if (n->right != NULL)
index_h_calc(n->right,i);
graduat *grad;
grad=n->value;
if(DEBUG)
printf("linea %d %d %s\n ",*i,(int)grad->tot,grad->name);
if(*i+1>=(int)grad->tot) {
return *i;
} else
*i+=1;
if (n->left != NULL)
index_h_calc(n->left,i);
return *i;
}
... "그런 다음 h- 색인을 * n * - 1"로 반환하면 안됩니까? 그렇지 않으면 나에게 소리가납니다. – Dmitri
@Dmitri : 아니, 'i - 1'이어야합니다. 구약의 첫 번째 예를 생각해 봅시다 : 우리는 4 행에서 멈추고 (왜냐하면'0 <4'),'4-1 = 3'의 h- 색인을 돌려줍니다. 두 번째 예에서는 2 행에서 멈추고 '1'을 반환합니다. – deprecated
죄송합니다. 어떤 이유로 든 마음에 "n"과 "i"가 있다고 썼습니다. – Dmitri