double ended queue with linked list