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


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

私たちは何をしていますか? :誰かが私のことを説明してくれますか?

ノードl、r;

私はここには含まれていないプログラムの一部です。おかげさまで

+1

'Node'はクラスです。ここでは、Javaの入門チュートリアルは非常に役に立ちます。 – David

+0

左、右、値、およびh変数を持つノードは、これが整数を保持するバイナリツリーの実装であることを示唆しています。 Javaをよく理解したら、これを汎用クラスにして、バイナリツリーに何かを保持できるようにします。 – duffymo

+1

これはおそらく、バイナリツリーのノードです。ここで、l、rはノードの左右の子ノードを表します。 – Javant

答えて

0

Nodeは、定義しているクラスの名前です。

Node l, r;は(各ノードは、2つのノード、左右を含む可能性がある)Nodeの各インスタンスの内部Nodeタイプの2つの変数を定義するが、それらを初期化しません。

+0

新しいインスタンス化された各NodeオブジェクトのNodeクラスの2つのインスタンス(2つの変数ではありません)。 – acornagl

+0

@acornagl - 上記のコードで宣言された 'Node'クラスのインスタンスはありません。プライベートインスタンス変数のそれぞれは、コンストラクタで 'null'に設定されます。 –

1

正確にはとはどのようなものなのかわかりません。

しかし、我々はひどいという名前のフィールドに基づいて教育を受けた推測を作ることができます。

  • lは本当にする必要がありますleft
  • rが本当にright
  • val命名されなければならない名前を付ける必要があります名前:value

これは、クラスをbinary search treeノードのように見せます。

hはわかりませんが、サブツリーの高さを表すheightという値になります。

Badly named fields

変数名はまだ有意義短くする必要があります。変数名の選択はニーモニックでなければなりません。つまり、カジュアルオブザーバーにその使用目的を示すように設計されていなければなりません。 一時的な "投棄"変数を除いて、1文字の変数名は避けてください。

関連する問題