BohYoh.comトップページへ

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

戻る  

演習9-4の解答

 ポインタ版の線形リストに対する演習9-1(p.299)と同じ課題を、配列カーソル版の線形リストに対して行え。

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


戻る