finished double-linked-list with bidirctional iterator (iterator untested)