Придумал простой итератор для обхода произвольного дерева:
(для облегчения кода прежде всего)
(для облегчения кода прежде всего)
struct Document
{
Concept *root;
struct Iter
{
Concept *start;
Concept *cur;
Concept *bottom;
}iter;
Concept* Begin(Concept *c)
{
iter.start = c;
iter.cur = c;
iter.bottom = 0;
return Next();
}
Concept * Next()
{