このグループプロジェクトは、テキストファイルを取り込み、種と亜種とそのようなものに切り詰めることになっています。私はチョッピングと木構造を終えましたが、私はBuildGraph()を動作させるのに苦労しています。私はそれをfindNode()関数に絞り込みました。任意の数の子を持つノードのツリー内のノードを見つける
EDIT:コメント、これは私の初めての投稿ですので、醜い場合はごめんなさい。 私はこれらの変更を両方とも別のバージョンで行いましたが、どこかでそれらを取り除くことになりましたか?
Node* findNode(std::string data, Node* head){
if (head == NULL){
return NULL;
}
else if(head->data == data){
return head;
} else {
if(head->children[0]!=NULL){
for(int i = 0; i<head->children.size();i++){
return findNode(data, head->children.at(i));
}
}
}
マイ・ノード構造は次のようになります...
public:
std::string data;
std::vector <Node*> children;
Node(std::string data){
this->data=data;
}
私はに実行している問題は、再帰呼び出しについての何かであることを確信しているが、より深い行くのではなく、何らかの形で拡大していますセグメンテーションが発生します。
私が探していることが可能かどうか誰かに教えてもらえますか?
if(head->children[0]!=NULL){
あなたはchildren[0]
アクセスが、子供たちが空であるかどうかをチェックしません:
'return findNode(data、head-> children.at(i));'、あなたが 'return'を見逃しました –
' head'がヌルでないかどうかチェックしないのはなぜですか? –