private boolean linkFirst(Node<E> node){
  if (count >= capacity)   return false;
  Node<E> f=first;
  node.next=f;
  first=node;
  if (last == null)   last=node;
 else   f.prev=node;
  ++count;
  notEmpty.signal();
  return true;
}

private boolean linkFirst ( Node < E > node ) { if ( count >= capacity ) return false ; Node < E > f = first ; node . next = f ; first = node ; if ( last == null ) last = node ; else f . prev = node ; ++ count ; notEmpty . signal ( ) ; return true ; }
links node as first element , or returns false if full .
