2016-06-30 11 views
0

指定された要素をソートされたリストの正しい位置に挿入するメソッドに取り組んでいます。同じ要素を何回か挿入することができます。私のメソッドは要素を挿入せず、正しい位置にすべての要素を挿入しない理由を理解しないでください!これは私のコードです挿入要素DoubleLinked

+0

申し訳ありませんが、あなたのコードと実際の結果は矛盾していますが、どこに 'System.out.print(" Iteration: ")'がありますか? 'System.out.print("ソートされたリストのための繰り返し ")' – niceman

答えて

0

同じ質問をStackOverflowに二度続けて投稿しないでください。代わりに最初の質問を編集してください。

まず、Javaは基本的な二重リンクリストを提供します。ホイールを再作成するのではなく、LinkedList<E>を使用する必要があります。

とにかく、2つの問題があります。最初は、テールの後ろではなく、テールの前に物を挿入する特別なケースがあるということです。あなたは、これがまた

if(current == null){ 
    tail.next = d; 
    d.pre = tail; 
    tail = d; 
    return this; 
} 

を言うべき

if(current==tail){ 
    Node n = new Node(element); 
    n.next = tail; 
    tail = n; 
    size++; 
    return this; 
} 

を持って、あなたが実際に二重リンクリストをやっていることを確認する必要があります。つまり、

n.next = head; 
head = n; 

ニーズ

n.next = head; 
head.pre = n; 
head = n; 

もう一つある - バイナリ検索ではなく、線形検索を行います。はるかに速いsoooだ。

0

あなたのforeach-loopはどのように知っているべきですか、あなたのリストの値にアクセスする方法を自分自身に質問してください。あなたのスーパークラスに実装されているかもしれませんが、あなたの特別なリストのためにも機能しますか?

私は考えていないので、あなたがBasicDoubleLinkedList<T>に実装しているものはありますが、これはどこから検索を開始すべきかと思います。

List<E>インターフェイスをご覧ください。いくつかの方法があります。すべてが正しく実装されているかどうかを確認できます。それらをオーバーライドするだけで、問題はなくなります。

関連する問題