我正在学习二叉树,我想了解为什么Node left
再次调用class Node
。
例如:
class Node
{
Node left, right;
int data;
}
为什么Node
调用Node
以及为什么它不是int Node。
答案 0 :(得分:1)
字段left
和right
可能只包含对其他Node
个实例的引用。它们不是类,只是引用类型的字段。
通过这样的设置,您可以构建二叉树,因为现在每个Node
可以包含一个值 - int data
- 以及对左子树的根节点的引用 - { {1}} - 以及对右子树的根节点的引用 - Node left
。
答案 1 :(得分:1)
这不是调用,这是member declaration,这些是字段,如果它只是int node
我们没有对节点的子节点的任何引用,所以我们需要有node
类型的字段因为它是二叉树,我们需要left child
和right childs
。
答案 2 :(得分:1)
二叉树只是一个结构,它包含0到2个链接在一起的相同类型对象的引用。例如,这张糟糕的图表:
10
/ \
1 5
/ \
3 6
10是Node
,其中包含:
left
引用Node
value
1。right
引用Node
value
5。其他节点类似。