我正在使用堆栈对二叉树进行迭代搜索。但是我遇到了分段错误。我已经检查了很多次,但找不到任何东西。请帮忙。
void inOrder(struct Node *root)
{
stack<Node *> s;
Node *t;
s.push(root);
while (s.empty() == false) {
t = s.top();
while (t->left != NULL) {
s.push(t->left);
t = t->left;
}
while (1) {
t = s.top();
s.pop();
cout << t->data << " ";
if (t->right != NULL) {
s.push(t->right);
break;
}
}
} /* end of while */
}
while(1){
应该是:
while (!s.empty()) {