| list-insert-delete.c - Funktionen delete_after. | Lektion 9 - slide 23 : 29 Program 2 |
/* Delete the element after ptr_list. Assume as a
precondition that there exists an element after ptr_list */
void delete_after(cons_cell *ptr_list){
cons_cell *ptr_after, *ptr_dispose;
/* cons-cell to delete later */
ptr_dispose = tail(ptr_list);
/* The element to follow ptr_list */
ptr_after = tail(ptr_dispose);
/* Mutate the tail of ptr_list */
set_tail(ptr_list, ptr_after);
/* Free storage - only one cons-cell */
free(ptr_dispose);
}