BohYoh.comトップページへ

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

戻る  

演習9-1の解答

 コンパレータc によって互いに等しいとみなすことのできる全ノードを削除する以下のメソッドを作成せよ。
  void purge (Comparator <? super E > c )

   //--- コンパレータcによって互いに等しいとみなせるノードをすべて削除 ---//    public void purge(Comparator<? super E> c) {       Node<E> ptr = head;       while (ptr != null) {          int count = 0;          Node<E> ptr2 = ptr;          Node<E> pre = ptr;          while (pre.next != null) {             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;          }


戻る