2

リストの途中(最初または最後だけでなく)のどこにでも新しいリンクを追加できる機能を備えたJavaでリンクされたリストを作成することは可能ですか?新しいリンクのエントリに対応するには?

もしそうなら、あなたの例を投稿してください!!

4

4 に答える 4

3

LinkedList を使用してこれを行うことができます。

List<Integer> ints = new LinkedList<Integer>();
for (int i = 0; i <= 10; i++)
    ints.add(i / 2, i);
System.out.println(ints);

版画

[1, 3, 5, 7, 9, 10, 8, 6, 4, 2, 0]

ご覧のとおり、リストの途中にエントリが追加されています。

于 2012-08-31T15:51:46.753 に答える
2

Javaのクラスは、そのメソッドLinkedListによってすでにこれを行っています。add(index, element)

于 2012-08-31T15:49:52.487 に答える
2

疑似コードの何かのリンクでは、これは開始するのに適した場所です:

public LinkedList<E> implements List<E>{
    ...

    public void add(int index, E element){
        Node<E> current=findNodeAt(index);
        //add in your logic to insert this node at this location
        //probably something like (depending on your linking)
        element.setNext({current nodes next value})
        current.setnext(element);      
    }

    private Node<E> findNodeAt(index){
        //iterate through list until you reach the index or end of the list
        //then return that node
    }

    ...
}





public Node<E>{
    private Node<E> next;
    ... 

    Node<E> setNext(Node<E> next){
        Node<E> previousNext=next;
        this.next=next;
        return previousNext;
    }

    ...
}
于 2012-08-31T15:58:20.183 に答える
1

LinkedList「リスト」インターフェイスを実装し、必要な追加メソッドがあります: http://docs.oracle.com/javase/7/docs/api/java/util/List.html#add%28int,%20E%29

于 2012-08-31T16:25:00.077 に答える