linked list queue implementation