2

基本的に述べたように、二重にリンクされたリストの独自の実装があり、compareTo メソッドを使用して追加されたときにオブジェクトを並べ替えたいと考えています。

public void add(E c)
{
Node<E> finger = head;
while (finger != null && ((finger.value().compareTo(c)) > 0))
    finger = finger.Next();


if(finger != null && finger.Next() != null && finger.Previous() != null)
{
    Node<E> n = new Node<E>(c);
    n.setPrev(finger);
    n.setNext(finger.Next());
    finger.Next().setPrev(n);
    finger.setNext(n);
    count++;
}
else if(finger !=null && finger.Next() == null && finger.Previous() != null)
    this.addLast(c);
else if(finger !=null && finger.Next() != null && finger.Previous() == null)
    this.addFirst(c);
else{this.addFirst(c);}     
}

それから私は走ります

DList<String> DD = new DList<String>();
DD.add("d");
DD.add("e");
DD.add("f");
DD.add("a");
DD.add("b");
DD.add("c");
DD.add("g");
DD.add("h");

for(int i = 0; i < DD.size();i++)
    System.out.print(DD.get(i));

出力は hgcbafed です。

ここで何が問題なのですか?

4

1 に答える 1

0
Node<E> finger = head;
if(null == head){
    head = new Node<E>(c);
    return;
}

while (finger.next != null && ((finger.value().compareTo(c)) > 0))
    finger = finger.Next();    
Node n = new Node<E>(c);
n.next = finger.next;//n.setNext(finger.getNext();
finger.next = n;//finger.setNext(n);
于 2012-04-11T23:56:42.060 に答える