Szegmentációs hiba a bináris fában

szavazat
1

Vagy én már bámult a kód túl sokáig, vagy egyszerűen nem tudom kitalálni ezt ki. de ha használom 8000 számú szövegfájlt csökkenő sorrendben; 8000, 7999, ... kapok egy szegmentációs hiba a magasság függvényében. Ha valaki tudna egy pillantást lennék olyan hálás. Kösz.

    int BST::height(TreeNode* node)
    {

        int leftSubtree = 0;
        int rightSubtree = 0;
        if (node == NULL)
            return 0;
        else 
        {

            if (node -> getLeft() != NULL)
                leftSubtree = height(node -> getLeft());
            if(node -> getRight() != NULL)      
                rightSubtree = height(node -> getRight());

            if (leftSubtree > rightSubtree)
                return leftSubtree + 1;
            else 
                return rightSubtree + 1;
        }
    }//ends second height
A kérdést 17/04/2011 04:10
a forrás felhasználó
Más nyelveken...                            


1 válasz

szavazat
1

Ha van egy rendezett lista a számok, akkor lehet, tárolása ezen a listán (legrosszabb esetben egy fa O (n), hacsak nem szimmetrikus).

Ebben az esetben a rekurzív rutin lesz rekurzív 8000-szer egy köteg mélysége 8000.

Nem tudom, ha ez elég ahhoz, hogy túlcsordulás a verem, de minden esetben meg kell venni egy pillantást a fa közbenső szakaszaiban, hogy ha minden rendben megy lefelé a bal szélső ága.

Válaszolt 17/04/2011 05:39
a forrás felhasználó

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more