【发布时间】:2018-03-22 10:49:02
【问题描述】:
我已经创建了一个 BST 类,有一个根节点和左右节点。它运行良好。我正在尝试创建一个 ++ 运算符迭代器,它可以遍历每个节点并增加它的值。这是我到目前为止所得到的,我仍然认为它与我的构造函数有关。下面是我在 BST 类中包含的嵌套 Iterator 类。我只是 cout 看看它是否正常工作,但它一直打印出 0。
class Iterator
{
private:
// private iterator state...
nodeptr root;
public:
Iterator(nodeptr roots_) : root(roots_) {};
~Iterator() {}
bool operator!=(const Iterator& rhs) const { return (this-> root != rhs.root); }
bool operator==(const Iterator& rhs) const {
return (this->root == rhs.root);
}
Iterator operator++(T) {
nodeptr ptr = root;
if (root == NULL)
{
cout << "The tree is empty" << endl;
}
else
{
if (ptr->left != NULL)
{
ptr = ptr->left;
}
cout << ptr->data << " ";
if (ptr->right != NULL)
{
ptr = ptr->right;
}
else
{
cout << "_";
}
}
return *this;
}
}
【问题讨论】:
标签: c++ c++11 visual-c++ c++14 c++builder