gpt4 book ai didi

c++ - 我该如何编写这个节点计数器?

转载 作者:太空宇宙 更新时间:2023-11-04 12:54:34 25 4
gpt4 key购买 nike

您好,我正在尝试创建一个函数来计算二叉树中的节点数。我收到一条错误消息,指出功能不匹配。我遇到了其他错误,似乎无法正常工作。我知道这个想法很难弄清楚。谢谢你!编辑 - 我的错误是参数列表不匹配。

template<class T>
class BinaryTree
{
private:
struct TreeNode
{
T value;
TreeNode *left;
TreeNode *right;
};

TreeNode *root;

void insert(TreeNode *&, TreeNode *&);
void NodeNumber(TreeNode *&, int&); //My NodeNumber declaration
public:
BinaryTree()
{
root = nullptr;
}

void insertNode(T);
int NodeNum();
};

template <class T>
void BinaryTree<T>::insertNode(T item)
{
TreeNode *newNode = nullptr;

newNode = new TreeNode;
newNode->value = item;
newNode->left = newNode->right = nullptr;

insert(root, newNode);
}

template <class T>
void BinaryTree<T>::NodeNumber(TreeNode *&root, int&)
{
if (root = nullptr)
return;
else
root->right;
root->left;
count = count + 2;
}

template <class T>
int BinaryTree<T>::NodeNum()
{
int count = 0;
NodeNumber(root,count);
return count;
}

最佳答案

你在这个类中有很多错误的设计和错误。我将专注于彻底的错误。我不知道这些错误设计中哪些是你的教授强制要求的,哪些是你的。

BinaryTree<T>::NodeNumber ,正如目前所写的那样,每次都会崩溃。要找出原因,请仔细考虑这行代码的作用:

if (root = nullptr)

那条线与这两条线有何不同?

root = nullptr;
if (root)

其次,行是什么:

root->left;

和:

root->right;

具体怎么做?你认为他们为什么这样做?

最后,您应该在什么时候添加到 count为什么?这是真的吗?

关于c++ - 我该如何编写这个节点计数器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47147096/

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