class Node
{
Node l, r;
int val;
int h;
public Node()
{
l = null;
r = null;
val = 0;
h = 0;
}
我們在行中做什麼? :有人可以請解釋一下在java下面的這段代碼中的節點究竟是什麼?
節點l,r;
這只是我沒有包括在這裏的一個程序的一部分。 謝謝。
class Node
{
Node l, r;
int val;
int h;
public Node()
{
l = null;
r = null;
val = 0;
h = 0;
}
我們在行中做什麼? :有人可以請解釋一下在java下面的這段代碼中的節點究竟是什麼?
節點l,r;
這只是我沒有包括在這裏的一個程序的一部分。 謝謝。
Node
是您正在定義的類的名稱。
Node l, r;
定義Node
類型的兩個變量的Node
每個實例的內部,但不初始化它們(每個節點具有包含兩個節點,左和右的可能性)。
每個新實例化的Node對象上的Node類的兩個實例(不是兩個變量)。 – acornagl
@acornagl - 在上面的代碼中沒有聲明'Node'類的任何實例。每個私有實例變量都在構造函數中設置爲「null」。 –
我們不能告訴你究竟是它是什麼,因爲我們怎麼知道。
但是,我們可以猜測的基礎上,嚴重命名字段:
l
應該被命名爲left
r
應該被命名爲right
val
確實應該命名爲value
這將使該類似乎是一個binary search tree節點。
不知道h
是什麼,但它可能是height
的值,表示子樹的高度。
變量名應該簡短且有意義。變量名稱的選擇應該是助記的 - 即設計爲向臨時觀察者指示其使用意圖。 應避免使用單字符變量名稱,臨時「一次性」變量除外。
'Node'是一個類。這聽起來像是一個關於Java的入門教程在這裏會非常有幫助... – David
具有左,右,值和h變量的節點表明這是用於保存整數的二叉樹實現。當你更好地理解Java時,你可以將它作爲一個泛型類,以便你的二叉樹可以容納任何東西。 – duffymo
很可能這是一個二叉樹的節點,其中l,r表示節點的左側和右側子節點。 – Javant