newlink previous currentcurrent next newlink/old current <-newlink /old current --newlink perhaps you're unfamiliar with the use of two dot operators in the same expression it' natural extension of single dot operator the expression current next previous means the previous field of the link referred to by the next field in the link current deletion there are three deletion routinesdeletefirst()deletelast()and deletekey(the first two are fairly straightforward in deletekey()the key being deleted is current assuming the link to be deleted is neither the first nor the last one in the listthe next field of current previous (the link before the one being deletedis set to point to current next (the link following the one being deleted)and the previous field of current next is set to point to current previous this disconnects the current link from the list figure shows how this disconnection looksand the following two statements carry it outcurrent previous next current nextcurrent next previous current previouscurrent prev next first last null prev current current next next next prev prev null figure deleting an arbitrary link special cases arise if the link to be deleted is either the first or last in the list because first or last must be set to point to the next or the previous link here' the code from deletekey(for dealing with link connectionsif(current==firstfirst current nextelse /first item/first --old next /not first /old previous --old next