2014-01-20 1 views
0

У меня есть 2-3 дерева со следующей структурой узла:Как разобрать целые 2-3 дерева?

struct node 
{ 
    int value1, value2; 
    node *parent, *left, *right, *middle; 
} 

Проблема заключается в том, я не знаю, как разобрать целое дерево. Я знаю, как мы его ищем, потому что вы просто идете по правильному пути. Но как я могу проверить все узлы в дереве?

+1

Вы хотите, чтобы вы ходили по дереву? –

+0

Да. Пройдите через все узлы. – user3141607

ответ

1

Вот псевдокод, который может помочь:

void ParseNode(node *n) 
    { 
     OperationToParseCurrentNode(); 

     if(n->left) 
      ParseNode(n->left); 
     if(n->middle) 
      ParseNode(n->middle); 
     if(n->right) 
      ParseNode(n->right); 
    } 

Это будет обходить все узлы, если входной корневой узел.