如何计算一个值在树中出现了多少次

问题描述 投票:0回答:1

我要解决这个问题,它循环遍历每个节点并找到值,但是返回时崩溃,不知道为什么。 Obs.:在问题中,据说右边有一个相同的数字。

我的代码:

int conta(pNodo* arvore, int valor) {
    if(arvore == NULL) {
        return 0;
    }
    else {
       if(arvore->info == valor) {
         return(conta(arvore->dir, valor) + 1);
       }
       if(valor < arvore->info)
          conta(arvore->esq, valor);
       if(valor > arvore->info)
          conta(arvore->dir, valor);
    }
}
c tree binary binary-search-tree
1个回答
1
投票

你应该归还叶子中的发现。

int conta(pNodo* arvore, int valor) {
    if(arvore == NULL) {
        return 0;
    }
    else {
       if(arvore->info == valor) {
        return(conta(arvore->dir, valor) + 1);
        }
        if(valor < arvore->info)
            return conta(arvore->esq, valor); /* add "return" here */
        if(valor > arvore->info)
            return conta(arvore->dir, valor); /* add "return" here */

        }
}
© www.soinside.com 2019 - 2024. All rights reserved.