は、私はJavaでリンクされたリストを習得しようとすると、以下のコードについていくつかの質問があったんだ:リンクされたリストにルートノードを作成する方法は?
public class List {
Node root;
public List() {
// constructor
}
public int pop() {
// pop logic
}
public int push(int data) {
// push logic
}
}
私が飛び出るとリンクリストにデータをプッシュするためのListクラスを持っているしたいと思います。しかし、リストにはインスタンス化に関するデフォルトデータがないので、ルートノードへの参照を格納する最良の方法は何でしょうか? Cでは
、私は同じようにポインタを持っているでしょう:
Node * root;
しかし、Javaはポインタを持っていないので、のような単純な宣言持つでしょう:
Node root;
を...受け入れられますか? Javaをしばらく使用していませんが、クラス変数として宣言されたオブジェクトにメモリを割り当てないと、潜在的なメモリの問題が発生します。ありがとう!
変数には値が格納されます。非プリミティブ型の場合、これらの値は(内部的に)オブジェクトへの「参照」またはnullです。私は、「名前」という用語を使用することを好みます。 'ノードn1 =新しいノード();ノードn2 = n1; - >新しいノード "は、両方の変数が同じオブジェクトを"評価 "するので、" n1とn2(これは*同じ*ノードオブジェクトです)によって命名されます。この動作は、C/C++のポインタと同様です。非プリミティブ型の場合、代入(またはメソッドに渡す)に暗黙的なコピー/複製/クローンはありません。これはC++のコピーコンストラクタとは異なります。 –