struct CELL { struct CELL *prev; struct CELL *next; int value; };
head.prev = head.next = &head;
x->prev = p; x->next = p->next; p->next->prev = x; p->next = x;※空リストでも同様の手順で可能
p = p->prev;としてから、上の手順を実行
ポインタpで指されるセルを削除する。 ※リストの頭を削除しないように注意
if(p == &head){ fprintf(stderr,"リストの頭は削除できない"); } p->prev->next = p->next; p->next->prev = p->prev;
参考文献