2014-10-18 133 views
-2

我正在学习二叉树,我想知道为什么Node left再次调用。二叉树节点类参考

如:

class Node 
{ 
    Node left, right; 
    int data; 
} 

为什么Node调用Node,为什么它是不是int节点。

+0

'节点'不调用'节点'。这些只是现场声明。一个'Node'类的实例只是引用了一个左和右'Node',它们又是'Node'类的实例 – Robin 2014-10-18 16:06:46

回答

1

二叉树就是一个简单的结构,它包含0到2个对同一类型对象链接在一起的引用。例如,该绘制图很差:

10 
/\ 
1 5 
    /\ 
    3 6 

10是Node与:

  • left引用一个Nodevalue 1.
  • rightNodevalue 5.
引用

其他节点是相似的。

1

字段leftright只是可能包含对其他Node实例的引用。它们不叫做类,只是引用类型的字段。

有了这样的设置,你可以建立一个二叉树,因为现在每个Node可以包含值 - int data - 和左子树的根节点的引用 - Node left - 和根参考右子树的节点 - Node right

+0

对根节点的引用是什么意思? – fscore 2014-10-18 16:12:13

+0

对不起。如果你不知道这些术语,你应该去阅读一些开始的教程。 – Seelenvirtuose 2014-10-18 16:13:32

+0

就像我说的我是新的,所以你可以指向我的链接? – fscore 2014-10-18 16:14:05

2

这不叫,这是member declaration和那些领域,如果这只是int node我们没有到节点的孩子的任何引用,所以我们需要有node类型的字段,因为它是二叉树我们需要有left childright childs

+0

这不叫?你是什​​么意思? – fscore 2014-10-18 16:22:58

+0

你不调用一个类字段,它只是声明,在父节点中你有子节点,所以你可以找到子节点。假设节点a有两个孩子a和b,你怎么知道如果一个地方只有一个整数?您必须拥有父节点中的子节点才能知道这一点。就是这样。 – Lrrr 2014-10-18 16:26:44