class Node
{
Node l, r;
int val;
int h;
public Node()
{
l = null;
r = null;
val = 0;
h = 0;
}
私たちは何をしていますか? :誰かが私のことを説明してくれますか?
ノードl、r;
私はここには含まれていないプログラムの一部です。おかげさまで
class Node
{
Node l, r;
int val;
int h;
public Node()
{
l = null;
r = null;
val = 0;
h = 0;
}
私たちは何をしていますか? :誰かが私のことを説明してくれますか?
ノードl、r;
私はここには含まれていないプログラムの一部です。おかげさまで
Node
は、定義しているクラスの名前です。
Node l, r;
は(各ノードは、2つのノード、左右を含む可能性がある)Node
の各インスタンスの内部Node
タイプの2つの変数を定義するが、それらを初期化しません。
新しいインスタンス化された各NodeオブジェクトのNodeクラスの2つのインスタンス(2つの変数ではありません)。 – acornagl
@acornagl - 上記のコードで宣言された 'Node'クラスのインスタンスはありません。プライベートインスタンス変数のそれぞれは、コンストラクタで 'null'に設定されます。 –
正確にはとはどのようなものなのかわかりません。
しかし、我々はひどいという名前のフィールドに基づいて教育を受けた推測を作ることができます。
l
は本当にする必要がありますleft
r
が本当にright
val
命名されなければならない名前を付ける必要があります名前:value
これは、クラスをbinary search treeノードのように見せます。
h
はわかりませんが、サブツリーの高さを表すheight
という値になります。
変数名はまだ有意義短くする必要があります。変数名の選択はニーモニックでなければなりません。つまり、カジュアルオブザーバーにその使用目的を示すように設計されていなければなりません。 一時的な "投棄"変数を除いて、1文字の変数名は避けてください。
'Node'はクラスです。ここでは、Javaの入門チュートリアルは非常に役に立ちます。 – David
左、右、値、およびh変数を持つノードは、これが整数を保持するバイナリツリーの実装であることを示唆しています。 Javaをよく理解したら、これを汎用クラスにして、バイナリツリーに何かを保持できるようにします。 – duffymo
これはおそらく、バイナリツリーのノードです。ここで、l、rはノードの左右の子ノードを表します。 – Javant