Как исправить не было объявлено в этой области ошибка

Я пишу код для печати и нахожу сумму узлов в n-арном дереве, но получаю ошибку и не могу ее исправить.

#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);
}

ошибка: «дети» не были объявлены в этой области
q.push (дети [I]);
Как я могу это исправить?
В чем смысл этой ошибки?

-5

Решение

Предполагая, что вы включили весь код здесь.

В основном «дерево» никогда не создается просто используется? И потом дети выходят за рамки, потому что дерево никогда не выходит за рамки. Также, если вы создали другой класс для представления дерева и его в другом файле, вам нужно включить заголовок, в котором он определен.

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

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]