-1

独自のリンク リストを使用していますが、特定の場所にあるリストに新しいリンクを追加する方法を誰か教えてもらえますか? .add(3,4) を実行したいので、リストの 4 番目のリンクに要素 4 を追加します (0 が最初であるため)。(私は API から LinkedList を使用したくありません。そこにこれを行うためのメソッドがあることを知っています)

//Doubly linked list of integers

public class DLinkedList {
DLink _firstLink;
DLink _lastLink;
public DLinkedList()
{

}

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

public void addFirst(int e)
{
    DLink newLink = new DLink(e);
    if(isEmpty())
    {
        _lastLink = newLink;
    }
    else
    {
        _firstLink._previous = newLink;
    }
    newLink._next = _firstLink;
    _firstLink = newLink;
}

public void add(int index, int e)
{
    //how do I add a DLink in the i'th spot of the linked list?
}

public void addLast(int e)
{
    DLink newLink = new DLink(e);
    if(isEmpty())
    {
        _firstLink = newLink;
    }
    else
    {
    _lastLink._next = newLink;
    newLink._previous = _lastLink;
    }

    _lastLink= newLink;
}
}
4

1 に答える 1

0
public void add(int index, int e)
{
    DLink iterator=_firstLink;
    int count=0;
    while(iterator!=_lastLink)
    {
         if(count>=index)break;
         iterator=iterator._next;
         count++;
    }
    if(index==count)
    {
        DLink newLink = new DLink(e);
        newLink._previous=iterator._previous;
        newLink._next=iterator;
        iterator._previous=newLink;
    }
    else throw new Exception("IndexOutOfBoundException");
}
于 2013-09-08T17:08:13.540 に答える