learn how dequeue works and de-construct algorithm