Здравствуйте, nen777w, Вы писали:
Вообще-то это вовсе не дерево.
В качестве контейнера взят вектор, почему не map? Когда число элементов вырастет, дерево умрёт на вставках и удалениях.
Кроме того, такая запись выглядит крайне неприятно
tree.root()[0][0][0].insert( test_tree_t::node_t(5) );
tree.root()[0][0].remove( 0 );
против
node* child1 = parent->node(val0);
child2 = child1->node(val1);
Что за обращения у вас к индексам? Как же это будет выглядеть, когда степень вложенности станет равной к примеру 100?
Чем ваше дерево отличается от матрицы смежности? Если вы решили отобразить дерево таким образом, то стоило ли делать этот комбайн с массивами? Можно было бы отдельно хранить матрицу, отдельно на мапах хранить содержимое дерева.