queueu ADT write by c