2014-10-18 76 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