BohYoh.comトップページへ

Javaによるアルゴリズムとデータ構造

戻る  

演習9-9の解答

 線形リストLinkedList <E >に対する演習9-1(p.273)と同じ課題を、循環・重連結リストDblLinkedList <E >に対して行え。

    //------------------------------ 演習9-9 ------------------------------//     //--- コンパレータcによって互いに等しいとみなせるノードをすべて削除 ---//     void purge(Comparator<? super E> c) {         Node<E> ptr = head.next;         while (ptr.next != head) {             int count = 0;             Node<E> ptr2 = ptr;             Node<E> pre = ptr;             while (pre.next != head) {                 ptr2 = pre.next;                 if (c.compare(ptr.data, ptr2.data== 0) {                     pre.next = ptr2.next;                     count++;                 else                     pre = ptr2;             }             if (count == 0)                 ptr = ptr.next;             else {                 Node<E> temp = ptr;                 remove(ptr);                 ptr = temp.next;             }         }         crnt = head;     }


戻る