一千萬個為什麽

搜索

二叉樹中的最大數字

所以我試圖找到我的二叉樹中最大的數字,所以我可以刪除它,但它不會運行,插入我搜索最大數字的部分,樹工作得很好,沒有這部分。

這是我現在得到的代碼:

#include 
#include 


using namespace std;


template
class BinaryTree
{

struct Node
    {
        T data;
        Node* lChildptr;
        Node* rChildptr;

        Node(T dataNew)
        {
            data = dataNew;
            lChildptr = NULL;
            rChildptr = NULL;

        }
    };
private:
    Node* root; 

        void Insert(T newData, Node* &theRoot)
        {
            if(theRoot == NULL) 
            {
                theRoot = new Node(newData);
                return;
            }

            if(newData < theRoot->data)  
                Insert(newData, theRoot->lChildptr);
            else
                Insert(newData, theRoot->rChildptr);;
        }

        void PrintTree(Node* theRoot)
        {
            if(theRoot != NULL)
            {
                PrintTree(theRoot->lChildptr);
                cout<< theRoot->data<<" \n";;
                PrintTree(theRoot->rChildptr);
            }
        }
        void Largest( Node* theRoot, T max)
        {
            if ( theRoot == null )
            return -1;

            int left = Largest(theRoot->lChildptr);
            int right = Largest ( theRoot->rChildptr);
        if( theRoot->data > left && theRoot->data > right )
        return theRoot->data;
             else
       return max ( left, right );
};

    public:
        BinaryTree()
        {
            root = NULL;
        }

        void AddItem(T newData)
        {
            Insert(newData, root);
        }

        void PrintTree()
        {
            PrintTree(root);
        }
        void Largest()
        {
            Largest(root);
        }
    };

    int main()
    {
        BinaryTree *myBT = new BinaryTree();
        myBT->AddItem(2);
        myBT->AddItem(5);
        myBT->AddItem(1);
        myBT->AddItem(10);
        myBT->AddItem(8);
        myBT->PrintTree();
        myBT->Largest();
    } 

最佳答案

樹中最大的數字將是樹中最右邊的節點。所以繼續往下走,直到你再也不能。

//刪除了代碼,因為這可能是一個功課問題

轉載註明原文: 二叉樹中的最大數字