Я не могу понять, что оставил и что право узел в дереве.
Предположим, у меня есть такая структура,
struct Rect
{
void visit() { }
std::vector<Rect*> components;
};
Что такое оставил и что право здесь? Это присутствует здесь? Если так, как я могу определить, что w / c — слева, а w / c — справа?
Я хочу пройти их от корня до родителя (пост-заказ)
Это правильный путь?
void postorder(Rect *rect)
{
if (rect == nullptr) return;
for (auto &i : boost::adaptors::reverse(rect->components))
{
postorder(i);
}
rect->visit();
}
Но левого и правого узла здесь нет?
Здесь нет ни левого, ни правого (если только ваши прямоугольники не отсортированы по позиции оси X, которая не показана).
Других решений пока нет …