BohYoh.comトップページへ

新・明解Javaで学ぶアルゴリズムとデータ構造

戻る  

演習9-9の解答

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

   //--- コンパレータcによって互いに等しいとみなせるノードをすべて削除 ---//    public 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;    }


戻る