a simple priority queue base on heap