Как сделать метод findnode в дереве с вектором? - PullRequest
0 голосов
/ 26 октября 2019

Я пытаюсь сделать дерево с вектором. я пытаюсь сделать список дочерних узлов по вектору STL, как это.

class Node {
public:
  int data;
  Node* par;
  vector<Node*> chi;
}

, и у меня возникла проблема, когда я пытался создать метод findNode. Я пытаюсь сделать это с помощью рекурсии, но ошибка всегда происходит.

мой код здесь.

  Node* findNode(Node* T, int data) {
    if (T->data == data) {
      return T;
    }
    else {
      if (T->chi.size() !=0) {
        for (int i = 0; i < T->chi.size(); i++) {
          findNode(T->chi[i],data);
        }
       }
    }
  }

, когда я пытался вставить узел, который не является корневым узлом, всегда возникала ошибка. например)

insert 1 2 // ok
insert 1 3 // ok
insert 2 4 // error

в чем проблема?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...