【发布时间】:2021-02-15 14:36:38
【问题描述】:
我想知道当while循环到达nullptr时是否有任何方法(我认为有)避免程序崩溃?我做了从二叉搜索树传递给字符串值的方法,但是当没有父级的右子或左子时会出现问题。我的方法:
string to_string()
{
stringstream ss;
Node<T>* tmp = root;
queue<Node<T>*> q;
while (!q.empty() || tmp != NULL)
{
if (tmp != NULL)
{
q.push(tmp);
tmp = tmp->left_child;
}
else
{
tmp = q.front();
q.pop();
ss << "Data: " << tmp->data << " Left child: " << tmp->left_child->data << " Right child: " << tmp->right_child->data << " \n";
tmp = tmp->right_child;
}
}
return ss.str();
所以基本上我想知道如何告诉编译器,当它到达 nullptr 我希望它打印出一些值或字符串或其他任何东西而不是崩溃。当我删除 ->data (例如 tmp->right_child->data )时,它显然可以正常工作。 有谁知道解决方案? 谢谢
【问题讨论】:
-
看起来你是looking for
if。 -
@user4581301 是的,我猜。但我就是不知道该怎么做;)如果这对我来说很容易,我不会要求的,对吧?
标签: c++ search tree binary nullptr