Братцы, хотелось бы услышать мнение, как можно имплентировать следующую вещь.
Есть некая иерархическая структура, элементы которой представлены объектами типа
class TreeNode
{
// ...
public:
TreeNode* pParent; // ссылка на элемент - родитель
list<TreeNode*> Children; // элементы, являющиеся потомками данного
}
Все вроде понятно и прозрачно. Но с этим деревом нужно работать специфичным образом: требуется получать элемент дерева по номеру, без учета иерархии. Т.е. для структуры
node0 -- индекс элемента 0
node00 -- 1
node01 -- 2
node010 -- 3
node011 -- 4
node02 -- 5
node020 -- 6
node03 -- 7
node1 -- 8
Вопрос: как это сделать правильнее? Изобрести свой контейнер и свой итератор, позволяющий перемещаться по нодам именно таким оьразом? Или это лишнее?