在树中查找某个项目(C)

时间:2016-05-12 16:10:01

标签: c tree segmentation-fault

我有一棵树有结构。我需要找到最大数量的min(给定)。

    Item this_word (link h, int max){
        Item word;
        if (h == NULL) 
            return 0;
        if (h->item->acc == max){
            word = h->item; 
            this_word(h->l, max);
        }
        else{ 
            this_word(h->l, max);
            this_word(h->r, max);
        }
        return word;
    }

但是我遇到了分段错误..

1 个答案:

答案 0 :(得分:0)

h!= NULLh->item->acc == max成立时,您的代码会出现段错误。在这种情况下,执行else分支并返回word,之前没有设置。您可以通过为单词正确分配值来解决此问题。

Item this_word (link h, int max){
        Item word;
        if (h == NULL) {
            return 0;
        }
        if (h->item->acc == max) {
            word = h->item; 
            this_word(h->l, max);
        } else { 
            // assign a certain value to word
            this_word(h->l, max);
            this_word(h->r, max);
        }
        return word;
    }

据我所知,您的代码有点奇怪,因为根据您的问题,您无法完全理解您的代码。为了提高anser的质量,提供更好的问题(添加代码,解释上下文等)