错误:“root”未命名类型
error: ‘root’ does not name a type
对于节点的所有属性以及所有节点,我收到以下错误。
n-tree.h:35:2: error: ‘root’ does not name a type
root->parent = NULL;
^
我想创建一个具有任意数量的子节点的树。我为树定义创建了一个头文件。
我首先将节点定义为结构。然后使用节点的定义,我创建了一个树。
我尝试了许多方法来解决此错误,例如,通过在 nTree 结构中定义 Node 结构,在其他常见实现中定义节点。
这里是 n-树。
#ifndef N_TREE
#define N_TREE
#include <cstdio>
struct Node
{
Node* parent;
Node* left_child;
Node* right_sibling;
double key;
};
struct nTree
{
// Nodes - attributes of the tree
Node* root;
Node* node1_1;
Node* node1_1_1;
Node* node1_1_2;
Node* node1_2;
Node* node1_2_1;
Node* node1_2_2;
Node* node1_2_3;
Node* node1_3;
Node* node1_3_1;
// Root level
root->parent = NULL;
root->left_child = node1_1;
root->right_sibling = NULL;
root->key = 1;
// Level 1_1
node1_1->parent = root;
node1_1->left_child = node1_1_1;
node1_1->right_sibling = node1_2;
node1_1->key = 2;
// Level 1_2
node1_2->parent = root;
node1_2->left_child = node1_2_1;
node1_2->right_sibling = node1_3;
node1_2->key = 3;
// Level 1_3
node1_3->parent = root;
node1_3->left_child = node1_3_1;
node1_3->right_sibling = NULL;
node1_3->key = 4;
// Level 1_1_1
node1_1_1->parent = node1_1;
node1_1_1->left_child = NULL;
node1_1_1->right_sibling = node1_1_2;
node1_1_1->key = 5;
// Level 1_1_2
node1_1_2->parent = node1_1;
node1_1_2->left_child = NULL;
node1_1_2->right_sibling = NULL;
node1_1_2->key = 6;
// Level 1_2_1
node1_2_1->parent = node1_2;
node1_2_1->left_child = NULL;
node1_2_1->right_sibling = node1_2_2;
node1_2_1->key = 7;
// Level 1_2_2
node1_2_2->parent = node1_2;
node1_2_2->left_child = NULL;
node1_2_2->right_sibling = node1_2_3;
node1_2_2->key = 8;
// Level 1_2_3
node1_2_3->parent = node1_2;
node1_2_3->left_child = NULL;
node1_2_3->right_sibling = NULL;
node1_2_3->key = 9;
// Level 1_3_1
node1_3_1->parent = node1_3;
node1_3_1->left_child = NULL;
node1_3_1->right_sibling = NULL;
node1_3_1->key = 10;
};
#endif
这是 n-tree_implement.cpp
#include <cstdio>
#include "n-tree.h"
int main()
{
nTree* tree = new nTree;
printf("%dn", tree->root->key);
delete tree;
}
包含上述头文件时,会为 nTree 中的所有节点提供以下错误。
行:
root->parent = NULL;
root->left_child = node1_1;
root->right_sibling = NULL;
root->key = 1;
不合法。
我对提出解决方案犹豫不决,因为从您的代码中不清楚您打算如何使用nTree
.
相关文章:
- C++包含函数标头会给出错误'__dest'未命名类型
- 错误:"cast"未命名类型void setCastDescription(std::string
- C++ 错误:(类名)未命名类型
- src/caffe/parallel.cpp:70:1:错误:“参数”未命名类型
- 错误:'int_type'未命名类型 - 如何继承 typedefs 和用法
- 如何修复错误,迭代器未在此范围内声明,并且迭代器未命名类型'
- 使用 mex 编译库时出错 - __int 64 未命名类型
- 错误:"某个类"未命名类型。如何解决这个问题?
- 命名空间中的'bad_cast' 'std' 未命名类型错误
- QT:错误 ["*"令牌之前的预期")",并且主窗口未命名类型]
- "root"未命名类型错误
- Stack.h:13:3:错误:“单元格”未命名类型
- 错误:命名空间“PQXX”中的“行”未命名类型
- YYY 中的错误 XXX 未命名类型
- C 构建错误:类未命名类型
- 错误:"QGeo坐标"未命名类型
- 错误:"__NDK_FPABI__"未命名类型
- 错误 - 列表节点未命名类型
- android-ndk-r6-crystax-2 错误:命名空间'std'中的'string'未命名类型
- 错误:未命名类型(使用 auto)