BohYoh.comトップページへ

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

戻る  

演習9-4の解答

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

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


戻る