1

スタックの実装。Node クラスで「Node」タイプのフィールドを作成するにはどうすればよいですか?? タイプ「Node」の変数「first」には、タイプ「Node」のフィールドをどのように含めることができますか? ご協力ありがとう御座います

public class Stack 
{
private Node first = null;

private class Node
{
    String item;
    Node next;
}

public boolean isEmpty()
{
    return first == null;
}

public void push(String item)
{
    Node oldFirst = first;
    first = new Node();
    first.item = item;
    first.next = oldFirst;  
}

public String pop()
{
    String item = first.item;
    first = first.next;
    return item;
}

}

4

2 に答える 2

1

Java は参照 (またはポインター) によってオブジェクトを処理します。

class Node {
     String value;
     Node next;
}

このクラスのインスタンスを指定すると、その本体には 8 バイトのメモリが必要です (32 ビット マシン上)。最初の 4 バイトは文字列へのポインターを格納し、次の 4 バイトは別のNodeオブジェクト (または null) を指します。

于 2012-10-05T12:31:54.533 に答える
1

Node再帰的なデータ構造です。リストがあると想像してください。リストは空にすることも、最初の要素と残りを持ち、残りもリストにすることもできます。

あなたのStackクラスでは、最初のNodeインスタンスの参照を保持しています。この最初のインスタンスは、文字列値と次のNodeインスタンスへの参照で構成されます。最初は、クラスが同じクラスのフィールドを持つことができることを理解するのは簡単ではありません。しかし、これは基本原則です。つまり、クラス Person があります。1 つの Person インスタンスは、他の Person インスタンスに関連付けることができます。のようにfatherfatherその場合、 Person クラスにフィールドを含めるのは自然なことです。の型fatherは Person です。それは魔法ではありません。これは、クラス インスタンス間の関連付けをモデル化する唯一の方法です。ここでの唯一の特別な点は、これらが 2 つの異なるクラス間の関連付けではなく、同じクラス間の関連付けであることです。

于 2012-10-05T13:33:07.500 に答える