Я пытаюсь сделать дерево с вектором. я пытаюсь сделать список дочерних узлов по вектору 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
в чем проблема?