2017-07-12 2 views
-5

J'écris un code pour imprimer et trouver la somme des noeuds dans l'arbre n-aire mais j'obtiens une erreur et je ne peux pas la réparer.Comment réparer n'a pas été déclaré dans cette erreur de portée

#include <iostream> 
#include <queue> 
using namespace std; 

class Node 
{ 
public: 
    Node(int input) 
    { 
     this->data = input; 
    } 

    vector<Node*> children; 
    int data; 
}; 

void print(Node *root) 
{ 
    if (root == NULL) 
     return; 

    queue<Node *> q; 

    q.push(root); 
    int count = 0; 

    while (q.size() != 0) 
    { 
     Node *node = q.front(); 
     cout << node->data << " "; 
     q.pop(); 

     int sum = 0; 
     for (unsigned int i = 0; i < node->children.size(); i++) 
     { 
      q.push(children[i]); 
      sum += (children[i]); 
     } 
     cout << " - "; 
    } 

    cout << "Sum: " << cout; 
} 

int main() 
{ 
    tree->children.push_back(new Node(16)); 
    tree->children.push_back(new Node(96)); 
    tree->children.push_back(new Node(8)); 
    tree->children.push_back(new Node(10)); 
    tree->children.push_back(new Node(22)); 
    tree->children.push_back(new Node(9)); 
    tree->children.push_back(new Node(100)); 
    tree->children.push_back(new Node(1)); 
    tree->children.push_back(new Node(51)); 
    tree->children.push_back(new Node(70)); 

    cout << "Root: " << tree->data << endl << "Children:" << endl; 
    for (unsigned int i = 0; i < 10; i++) 
    { 
     cout << tree->children[i]->data << " "; 
    } 
    cout << endl; 

    print (tree); 
} 

erreur: 'enfants' n'a pas été déclarée dans ce champ q.push (enfants [i]); Comment puis-je le réparer? Quelle est la signification de cette erreur?

+0

Peut-être que vous voulez dire 'node-> children'? Et la signification est claire: il n'y a pas de variable 'children' dans la fonction' print'. –

+0

'tree' dans' main' est également inconnu. – mch

Répondre

0

En supposant que vous avez inclus tout le code ici.

Dans l'arbre principal n'est jamais créé juste utilisé? Et puis les enfants sont hors de portée parce que l'arbre n'est jamais dans aucune portée. Si vous avez créé une autre classe pour représenter l'arbre et son dans un autre fichier, vous devez inclure l'en-tête dans lequel il est défini.

Vous n'avez pas indiqué de numéro de ligne concernant l'erreur ou les étapes que vous avez déjà résolues il.