2016-09-15 62 views
-3
class Node 
{  
Node l, r; 
int val; 
int h; 


public Node() 
{ 
    l = null; 
    r = null; 
    val = 0; 
    h = 0; 
} 

我們在行中做什麼? :有人可以請解釋一下在java下面的這段代碼中的節點究竟是什麼?

節點l,r;

這只是我沒有包括在這裏的一個程序的一部分。 謝謝。

+1

'Node'是一個類。這聽起來像是一個關於Java的入門教程在這裏會非常有幫助... – David

+0

具有左,右,值和h變量的節點表明這是用於保存整數的二叉樹實現。當你更好地理解Java時,你可以將它作爲一個泛型類,以便你的二叉樹可以容納任何東西。 – duffymo

+1

很可能這是一個二叉樹的節點,其中l,r表示節點的左側和右側子節點。 – Javant

回答

0

Node是您正在定義的類的名稱。

Node l, r;定義Node類型的兩個變量的Node每個實例的內部,但不初始化它們(每個節點具有包含兩個節點,左和右的可能性)。

+0

每個新實例化的Node對象上的Node類的兩個實例(不是兩個變量)。 – acornagl

+0

@acornagl - 在上面的代碼中沒有聲明'Node'類的任何實例。每個私有實例變量都在構造函數中設置爲「null」。 –

1

我們不能告訴你究竟是它是什麼,因爲我們怎麼知道。

但是,我們可以猜測的基礎上,嚴重命名字段:

  • l應該被命名爲left
  • r應該被命名爲right
  • val確實應該命名爲value

這將使該類似乎是一個binary search tree節點。

不知道h是什麼,但它可能是height的值,表示子樹的高度。

Badly named fields

變量名應該簡短且有意義。變量名稱的選擇應該是助記的 - 即設計爲向臨時觀察者指示其使用意圖。 應避免使用單字符變量名稱,臨時「一次性」變量除外。

相關問題