ArrayQueue, LinkedQueue can run, but not perfect
hash