use an array queue