-3

過去 1 時間、リンクされたリストが何であるかを把握しようとしており、ノードとリンクが含まれていることがわかりました。このノードは実際には何ですか? java でリンクされたリストをどのように定義しますか? 別のプログラムを読んだことがありますが、直接関数を使用しない最も基本的なプログラムが必要です。リンクされたリストの操作方法とアクセス方法 リンクとノードをどのように保存しますか? これらは、私が混乱しているいくつかの質問です。ありがとうございます。どんな部分でもお答えいただければ幸いです。

4

3 に答える 3

1

リンク リストは、あるノードが次のノードを参照する順序付きリストです。リストは、次のノードへの参照を含む現在のノードを追跡する必要があります。リストが反復されると、現在のノードは次のノードへの参照を含む次のノードに切り替えられます。そこからサイクルが続きます。

簡単な Google 検索で、LinkedList に関する多くの情報が明らかになります。このウィキペディアのページはそれを非常によく説明しています。

おそらく、ノード インターフェイスの図が役立つでしょう。

public interface Node(){

    public Node next();
    public Node prev();
}

ノードには次のノードと前のノードへの参照があるため、このインターフェイスを使用してノードの「チェーン」を作成できます。

私はあなたの質問を誤解したかもしれないことに注意する必要があります.私はあなたが独自の実装を作成したいと思っていました.

于 2013-04-06T09:38:41.560 に答える
0

実装は、リストを使用できるようにするために心配する必要があるものではありません。

    List<String> yourList = new LinkedList<String>();

    yourList.add("item1");
    yourList.add("item2");
    // etc

    // iterating example
    for(String currentNodeElementOrWhatever : yourList) {
       // use this element somehow
       System.out.println(currentNodeElementOrWhatever);
    }

この場合、「item1」と「item2」はノードであり、それぞれ次のノードへのリンクがあるため、item1 -> item2 および item2 -> null は最後のアイテムであるためです。

于 2013-04-06T09:37:50.373 に答える
0

Node.js のクラスの例を次に示します。

public class Node<T>{
      Node next;
      T value;
}

LinkedList の疑似コード実装の例:

Add( val){
    Node newNode = new Node();
    newNode.next = firstNode;
    tailNode.next = newNode;
    newNode.value = val;
}

Get( idx){
    Node currentNode = firstNode;
    while(idx--!= 0)
        currentNode = currentNode.next;
    return currentNode.value;
}

Delete(idx){
   Node nodeToRemove= firstNode;
   while(idx-- > 0)
        nodeToRemove= currentNode.next;
    nodeToRemove.next = null;
}
于 2013-04-06T09:52:11.123 に答える