我想在一般树上定义一个迭代器。这是二进制文件的一个例子(来自维基百科):
迭代器应该允许我按预先遍历这个树结构。我可以使用std :: stack轻松实现这一点(从堆栈中获取节点,设置为当前节点,将其子节点添加到堆栈中)。
但我希望我也得到“落后”的节点。
应按以下顺序访问示例图片中的节点: F,B,A,B *,D,C,D *,E,D *,B *,F *,G,I,H
'*' - 表示在后面访问节点。
Iterator还应该存储信息,如果它是“正常”访问,或者是向后访问。
你会采取哪种方法来解决这个问题?