1
在我的程序中,我有一个用于二叉树的preOrder Iterator类。其中我试图在++运算符上实现一个运算符重载,以便从头到尾遍历树。但是我很困惑,因为二叉树可以同时具有左侧和右侧。我怎么知道开始的地方?它总是最左边的节点吗?为二叉树重载++运算符
这是我的代码结构:
家长二叉树:
/* Binary Tree */
class bin_tree
{
public:
int data;
bin_tree *left;
bin_tree *right;
bin_tree *parent;
class preOrder_iterator; //child iterator class
};
儿童迭代器类:
/* Iterator class -- inherits from parent */
class bin_tree::preOrder_iterator : public bin_tree
{
preOrder_iterator& operator ++() //++ prefix operator overload
{
}
preOrder_iterator begin();
preOrder_iterator end();
};
一个我想出用什么开头和结尾,怎么我会实施这种超负荷?
是你的问题“在二叉树中从节点到其后继节点的算法是什么”? – 2014-10-17 02:07:21
一种,但我必须做一个操作符超载,我也不知道该怎么定义为开始。 – 2014-10-17 02:11:44
要查找开始,请从根开始。继续沿左边的指针走,直到找到一个没有节点的节点为止。这是第一个节点。 – 2014-10-17 02:13:30