Bir İkili Ağacında Segmentasyon hatası

oy
1

Ya ben çok uzun yol için bu kodu bakarak oldum ya ben sadece bunu anlamaya olamaz. ama azalan bir 8000 numarası metin dosyası kullandığınızda; 8000, 7999, ... Ben yükseklik fonksiyonunda bir segment hataya olsun. Birisi bir göz atın olsaydı ben çok minnettar olacaktır. Teşekkürler.

    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
Oluştur 17/04/2011 saat 04:10
kaynak kullanıcı
Diğer dillerde...                            


1 cevaplar

oy
1

Bir sonra bir listede bu depolamak olabilir numaraların sıralanmış listesi varsa (bir ağaç için en kötü durum O (n) o dengeli olmadığı sürece) olduğunu.

Bu durumda, sizin özyinelemeli rutin 8000 bir yığın derinliği 8000 kez recursing olacaktır.

Bu yığın taşma için yeterli olup olmadığını bilmiyorum, ama her durumda her şeyin en soldaki dalı aşağı gidiyor görmek için ara aşamalarda ağacın bakmak gerekir.

Cevap 17/04/2011 saat 05:39
kaynak kullanıcı

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