-3
我想获得一个树,C++中的所有整数的总和,但每当我运行该程序时,它一直与此错误打破:未处理的异常抛出:读访问冲突。树是nullptr。如果有这种异常的处理程序,该程序可能会安全地继续
未处理的异常抛出:读访问冲突。树是nullptr。如果这个异常的处理程序,该程序可以继续安全地
这是我的函数:
int sigma(Node<int> *Tree)
{
int sum = 0;
if (Tree->item == NULL)
{
return 0;
}
else
{
sum = sum + sigma(Tree->left);
sum = Tree->item;
sum = sum + sigma(Tree->right);
}
return sum;
}
这是我的头文件:
template <typename T>
class Node
{
public:
Node(T itm, Node *lft, Node* rht);
Node(T itm); // for creating a leaf node
~Node();
void printTree();
bool searchTree(T key);
bool search(T word);
int depth(Node *tree);
T item;
Node *left, *right;
};
template <typename T>
Node<T>::Node(T itm)
{
item = itm;
left = nullptr;
right = nullptr;
}
template <typename T>
Node<T>::Node(T itm, Node *lft, Node *rht)
{
left = lft;
right = rht;
item = itm;
}
template <typename T>
Node<T>::~Node()
{
delete[] left, right;
}
任何关于如何我的任何想法可以修复这个?
请[编辑]你的问题提供了[MCVE。 –
你已经有了答案:* Tree was nullptr * –
'delete [] left,right;'我从来没有见过这个(我永远不会使用它)。这实际上是否删除所有条目?如果不是,它只是删除左侧,操作员不做任何事情。 – stefaanv