gpt4 book ai didi

c++ - 二叉树中最大的数

转载 作者:行者123 更新时间:2023-11-28 08:14:09 24 4
gpt4 key购买 nike

所以我试着在我的二叉树中找到最大的数字,这样我就可以删除它,但它不会运行,插入我正在搜索最大数字的部分,树工作得很好,没有这部分。

这是我现在得到的代码:

#include <iostream>
#include <string>


using namespace std;


template<class T>
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<int> *myBT = new BinaryTree<int>();
myBT->AddItem(2);
myBT->AddItem(5);
myBT->AddItem(1);
myBT->AddItem(10);
myBT->AddItem(8);
myBT->PrintTree();
myBT->Largest();
}

最佳答案

树中最大的数字将是树中最右边的节点。所以继续向右走,直到你不能再走了。

//删除了代码,因为这可能是一道家庭作业题

关于c++ - 二叉树中最大的数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8189504/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com