ポインタ版の線形リストに対する演習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; }