priority_queueを用いた実装を追加
interfaceを定義